Кэширование подзапросов в SQL Server 2008? - PullRequest
0 голосов
/ 09 февраля 2012

Если я запускаю следующий запрос несколько раз в SQL Server 2008, он кеширует результат внутреннего запроса (мой сложный запрос выбора) после первого раза?

Или выполняет этот запрос каждый раз сновые значения n и m?

SELECT * FROM (
   SELECT *, ROW_NUMBER() OVER (ORDER BY x.id) AS rowID 
   FROM (*My complicated select Query* ORDER BY id) x
 ) y WHERE y.rowID BETWEEN n AND m

1 Ответ

1 голос
/ 09 февраля 2012

Это будет зависеть от множества факторов, включая параметры параметризации (простой / принудительный и т. Д.), Параметр «Оптимизировать для специальных рабочих нагрузок», объем памяти, сложность запроса, что находится в кэше, как часто получаются планы обратите внимание, что существует большая разница между «кэшированием результата» (что не происходит) и «кэшированием и повторным использованием плана» (что может). Кэширование результатов не имеет смысла, если только ваша база данных (или файловая группа, в которой была создана эта таблица) не настроена на чтение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...