Поделиться через


sys.dm_exec_query_optimizer_info (Transact-SQL)

Возвращает подробные статистики по операциям оптимизатора запросов SQL Server. Это представление можно использовать для настройки рабочей нагрузки при обнаружении проблем, связанных с оптимизацией запросов, или для улучшения производительности обработки запросов. Например, можно использовать общее количество оптимизаций, значение прошедшего времени и значение окончательных затрат для сравнения оптимизаций запросов в текущей рабочей нагрузке и любых изменений, отмеченных во время процесса настройки. Некоторые счетчики содержат данные, применимые только для внутренней диагностики SQL Server. Эти счетчики помечены атрибутом «Только для внутреннего использования.».

Название

Тип данных

Описание

counter

nvarchar(4000)

Имя события статистики оптимизатора.

occurrence

bigint

Количество вхождений события оптимизации для этого счетчика.

value

float

Среднее значение свойства для вхождения события.

Разрешения

Требуется разрешение VIEW SERVER STATE для сервера.

Замечания

Таблица sys.dm_exec_query_optimizer_info содержит следующие свойства (счетчики). Все значения частотности рассматриваются совокупно и при перезапуске системы устанавливаются в 0. Все значения полей значений при перезапуске системы устанавливаются в NULL. Все значения значимых столбцов, по которым определяется среднее, используют значение частотности из той же строки, что и знаменатель в вычислении среднего. Все оптимизации запросов измеряются, когда SQL Server определяет наличие изменений в dm_exec_query_optimizer_info, включая как пользовательские, так и сформированные системой запросы. Выполнение кэшированного плана не изменяет значений в таблице dm_exec_query_optimizer_info, имеют значение только оптимизации.

Счетчик

Вхождение

Значение

оптимизации

Общее число операций оптимизации.

Не применяется.

затраченное время

Общее число операций оптимизации.

Среднее время, затраченное на оптимизацию отдельной инструкции (запроса), в секундах.

окончательные затраты

Общее число операций оптимизации.

Средняя оценка затрат для оптимизированного плана во внутренних единицах затрат.

обычный план

Только для внутреннего использования.

Только для внутреннего использования.

задачи

Только для внутреннего использования.

Только для внутреннего использования.

без плана

Только для внутреннего использования.

Только для внутреннего использования.

поиск 0

Только для внутреннего использования.

Только для внутреннего использования.

время поиска 0

Только для внутреннего использования.

Только для внутреннего использования.

задачи поиска 0

Только для внутреннего использования.

Только для внутреннего использования.

поиск 1

Только для внутреннего использования.

Только для внутреннего использования.

время поиска 1

Только для внутреннего использования.

Только для внутреннего использования.

задачи поиска 1

Только для внутреннего использования.

Только для внутреннего использования.

поиск 2

Только для внутреннего использования.

Только для внутреннего использования.

время поиска 2

Только для внутреннего использования.

Только для внутреннего использования.

задачи поиска 2

Только для внутреннего использования.

Только для внутреннего использования.

выигрыш при переходе от стадии 0 к стадии 1

Только для внутреннего использования.

Только для внутреннего использования.

выигрыш при переходе от стадии 1 к стадии 2

Только для внутреннего использования.

Только для внутреннего использования.

время ожидания

Только для внутреннего использования.

Только для внутреннего использования.

превышение предела памяти

Только для внутреннего использования.

Только для внутреннего использования.

инструкции insert

Количество операций оптимизации для инструкций INSERT.

Не применяется.

инструкции delete

Количество операций оптимизации для инструкций DELETE.

Не применяется.

инструкции update

Количество операций оптимизации для инструкций UPDATE.

Не применяется.

содержащие вложенный запрос

Количество операций оптимизации для запросов, содержащих как минимум один вложенный запрос.

Неприменимо

сбой устранения вложенности

Только для внутреннего использования.

Только для внутреннего использования.

таблицы

Общее число операций оптимизации.

Среднее число таблиц, на которые ссылается оптимизированный запрос.

указания

Количество раз, когда было задано указание. Список указаний включает: Указания запросов JOIN, GROUP, UNION и FORCE ORDER, параметр набора FORCE PLAN и указаний в соединениях.

Не применяется.

указание упорядочивания

Количество раз, когда было задано указание принудительного упорядочивания.

Не применяется.

указание соединения

Количество раз, когда по указанию соединения принудительно вызывался алгоритм соединения.

Не применяется.

обращение к представлению

Количество раз, когда производилось обращение к представлению в запросе.

Не применяется.

удаленный запрос

Количество операций оптимизации, при которых запрос обращался как минимум к одному удаленному источнику данных, например к таблице с четырехкомпонентным именем или результату инструкции OPENROWSET.

Не применяется.

максимальное DOP

Общее число операций оптимизации.

Среднее эффективное значение MAXDOP для оптимизированного плана. По умолчанию эффективное значение MAXDOP определяется параметром конфигурации сервера max degree of parallelism и может быть заменено для конкретного запроса значением указания запроса MAXDOP.

максимальный уровень рекурсии

Количество операций оптимизации, в которых был задан уровень MAXRECURSION больше 0 в рамках указания запроса.

Средний уровень MAXRECURSION в операциях оптимизации, для которых был задан максимальный уровень рекурсии в рамках указания запроса.

загруженные индексированные представления

Только для внутреннего использования.

Только для внутреннего использования.

сопоставленные индексированные представления

Количество операций оптимизации, в которых было сопоставлено одно или несколько индексированных представлений.

Среднее количество сопоставленных представлений.

использованные индексированные представления

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

Среднее количество использованных представлений.

обновленные индексированные представления

Количество операций оптимизации DML-инструкции, выдающих план, обслуживающий одно или несколько индексированных представлений.

Среднее количество обслуженных представлений.

запрос динамического курсора

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

Не применяется.

запрос быстрого перемещения курсора вперед

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

Не применяется.

merge stmt

Количество операций оптимизации для инструкций MERGE.

Неприменимо

Примеры

А.Просмотр статистики выполнения оптимизатора

Каковы текущие статистики выполнения оптимизатора для данного экземпляра SQL Server?

SELECT * FROM sys.dm_exec_query_optimizer_info;

Б.Просмотр общего количества операций оптимизации

Количество выполняемых операций оптимизации.

SELECT occurrence AS Optimizations FROM sys.dm_exec_query_optimizer_info
WHERE counter = 'optimizations';

В.Среднее время, затраченное на операцию оптимизации

Каково среднее время, затраченное на операцию оптимизации?

SELECT ISNULL(value,0.0) AS ElapsedTimePerOptimization
FROM sys.dm_exec_query_optimizer_info WHERE counter = 'elapsed time';

Г.Доля операций оптимизации, в которых задействованы вложенные запросы

Доля оптимизированных запросов, содержащих вложенные запросы.

SELECT (SELECT CAST (occurrence AS float) FROM sys.dm_exec_query_optimizer_info WHERE counter = 'contains subquery') /
       (SELECT CAST (occurrence AS float) 
        FROM sys.dm_exec_query_optimizer_info WHERE counter = 'optimizations')
        AS ContainsSubqueryFraction;

См. также

Справочник

Динамические административные представления и функции (Transact-SQL)

Динамические административные представления и функции, связанные с выполнением (Transact-SQL)