2010-09-01 2 views
2

Я читаю превосходную книгу Гранта Фричи, SQL Server Execution Plans. На стр. 21 он заявляет, "When a query is submitted to the server, an estimated execution plan is created by the optimizer. Once that plan is created, and before it gets passed to the storage engine, the optimizer compares this estimated plan to the actual execution plan that already exist in the plan cache." Далее он говорит, что это сделано, потому что очень сложно создавать планы запросов.Планы выполнения SQL Server - фактический и оцененный

Это похоже на то, что SQL Sever вычислит расчетный план оптимизатором и, если расчетный план не соответствует фактическому плану в кеше плана, создайте фактический план и сохраните его в кеше. Таким образом, похоже, существует ли существующий план в кеше плана или нет, SQL Server всегда будет генерировать оценочный план. Если это все равно, зачем нужно хранить что-либо в кеше? Почему бы просто не рассчитать план, так как он будет делать это хотя бы один раз? Я что-то упускаю?

Спасибо.

ответ

1

Я прочитал this, который является более точным, ИМХО

взять Гранта является here слишком

+0

https://www.simple-talk.com/sql/performance/graphical-execution-plans-for -простой-SQL-запросов / –

Смежные вопросы