Sql Server кэширует скомпилированные запросы и план выполнения по транзакциям? - PullRequest
2 голосов
/ 17 декабря 2010

Люди,

Я использую лучшие практики подготовленных операторов SQL для выполнения множества вставок / обновлений, которые различаются по одним и тем же параметрам. У меня есть два варианта в моем дизайне: 1. Вся работа выполняется за одну транзакцию. 2. разбить работу на несколько транзакций (не по одной на оператор, а что-то, что соответствует параллельности моей среды). Если я выберу № 2, будет ли SQL использовать преимущества кэшированного скомпилированного плана запроса / выполнения для транзакций? Или, поскольку запрос был сделан внутри транзакции, срок службы кэша будет ограничен транзакцией?

Ответы [ 2 ]

6 голосов
/ 17 декабря 2010

Планы не связаны с транзакциями. Или соединения по этому вопросу

То есть план может совместно использоваться многими txns и / или пользователями и / или соединениями. И в разное время, если план действителен и все еще находится в кеше

5 голосов
/ 17 декабря 2010

Кэш запросов не зависит от транзакций, поэтому ваши запросы будут кэшироваться независимо от того, какой вариант вы выберете.

...