когда создаются планы выполнения в SQL Server? - PullRequest
0 голосов
/ 23 февраля 2011

Когда в хранимой процедуре в SQL Server генерируются фактические планы запросов SQL? Когда SQL запускается в первый раз или когда хранимая процедура компилируется? Любая идея, насколько дорого генерация планов запросов по сравнению с Oracle?

1 Ответ

4 голосов
/ 23 февраля 2011

Когда выполняется запрос, SQL Server проверит, существует ли план выполнения для этого запроса в кэше плана выполнения.Если он найдет один, он может повторно использовать этот план выполнения.Если он не находит его в кеше, он генерирует план, помещает в кеш готовый к последующим вызовам для повторного использования, а затем выполняет запрос.Таким образом, это происходит во время выполнения запроса.

Как долго план остается в кэше, зависит от ряда факторов, в том числе:- как часто этот план используется- Какую «ценность» предлагает этот план- нехватка памяти на сервере

Таким образом, данный запрос может иметь план выполнения, сгенерированный несколько раз в течение определенного периода, если он не может оставаться в кэше.Кроме того, при перезапуске SQL Server кэш очищается.

Есть хорошая статья MSDN по Кэширование и повторное использование плана выполнения

...