Параметр конфигурации сервера «optimize for ad hoc workloads»

Параметр optimize for ad hoc workloads используется для повышения эффективности кэширования планов рабочих нагрузок, содержащих много отдельных нерегламентированных пакетов. Если этот параметр имеет значение 1, компонент Компонент Database Engine при первой компиляции пакета сохраняет в кэше планов небольшую скомпилированную заглушку плана, а не полный откомпилированный план. Это несколько снижает требования к памяти, так как кэш планов не заполняется скомпилированными, не используемыми повторно планами.

Откомпилированная заглушка плана позволяет компоненту Компонент Database Engine понять, что данный нерегламентированный пакет компилировался ранее, но от него сохранилась только заглушка. При повторном вызове этого пакета для компиляции или выполнения компонент Компонент Database Engine откомпилирует пакет, удалит из кэша планов откомпилированную заглушку плана и добавит туда полный скомпилированный план.

Когда параметру optimize for ad hoc workloads присваивается значение 1, это влияет только на новые планы; те планы, которые уже находятся в кэше планов, остаются неизменными.

Скомпилированная заглушка плана принадлежит к объектам cacheobjtypes, которые можно просмотреть в представлении каталога sys.dm_exec_cached_plans. У каждой заглушки есть уникальный дескриптор SQL и дескриптор плана. Со скомпилированной заглушкой плана не связан план выполнения. Запрос по дескриптору плана не вернет XML-код Showplan.

Флаг трассировки 8032 восстанавливает параметры предела кэша до значения в RTM-версии SQL Server 2005, что обычно позволяет увеличить размер кэша. Используйте этот параметр, если часто используемые повторно элементы кэша не помещаются в кэш и в Параметр конфигурации сервера «optimize for ad hoc workloads» не удалось разрешить эту проблему с помощью кэша планов.

ПредупреждениеВнимание!

Применение флага трассировки 8032 может привести к снижению производительности, если увеличение кэша приводит к уменьшению объема памяти, доступной для других потребителей памяти других клиентов, таких как буферный пул.

См. также

Справочник

sys.dm_exec_cached_plans (Transact-SQL)

Основные понятия

Параметры конфигурации сервера