sys.dm_exec_query_optimizer_info (Transact-SQL)sys.dm_exec_query_optimizer_info (Transact-SQL)

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data WarehouseПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data Warehouse

Возвращает подробные статистики по операциям оптимизатора запросов SQL ServerSQL Server.Returns detailed statistics about the operation of the SQL ServerSQL Server query optimizer. Это представление можно использовать для настройки рабочей нагрузки при обнаружении проблем, связанных с оптимизацией запросов, или для улучшения производительности обработки запросов.You can use this view when tuning a workload to identify query optimization problems or improvements. Например, можно использовать общее число оптимизаций, значение затрачиваемого времени и значение конечной стоимости для сравнения с оптимизацией запросов текущей рабочей нагрузки и любыми изменениями во время процесса настройки.For example, you can use the total number of optimizations, the elapsed time value, and the final cost value to compare the query optimizations of the current workload and any changes observed during the tuning process. Некоторые счетчики предоставляют данные, которые могут быть использованы только для внутренней диагностики SQL ServerSQL Server.Some counters provide data that is relevant only for SQL ServerSQL Server internal diagnostic use. Эти счетчики помечены атрибутом «Только для внутреннего использования.».These counters are marked as "Internal only."

Примечание

Чтобы вызвать эту функцию из Azure Synapse AnalyticsAzure Synapse Analytics или Параллельное хранилище данныхParallel Data Warehouse , используйте имя sys.dm_pdw_nodes_exec_query_optimizer_info.To call this from Azure Synapse AnalyticsAzure Synapse Analytics or Параллельное хранилище данныхParallel Data Warehouse, use the name sys.dm_pdw_nodes_exec_query_optimizer_info.

ИмяName Тип данныхData type ОписаниеDescription
подписанcounter nvarchar(4000)nvarchar(4000) Имя события статистики оптимизатора.Name of optimizer statistics event.
occurrenceoccurrence bigintbigint Количество вхождений события оптимизации для этого счетчика.Number of occurrences of optimization event for this counter.
valuevalue floatfloat Среднее значение свойства для вхождения события.Average property value per event occurrence.
pdw_node_idpdw_node_id intint Применимо к: Azure Synapse AnalyticsAzure Synapse Analytics , Параллельное хранилище данныхParallel Data WarehouseApplies to: Azure Synapse AnalyticsAzure Synapse Analytics, Параллельное хранилище данныхParallel Data Warehouse

Идентификатор узла, на котором находится данное распределение.The identifier for the node that this distribution is on.

РазрешенияPermissions

В SQL ServerSQL Server необходимо VIEW SERVER STATE разрешение.On SQL ServerSQL Server, requires VIEW SERVER STATE permission.
В базах данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах требуется учетная запись администратора сервера или учетная запись администратора Azure Active Directory .On SQL Database Basic, S0, and S1 service objectives, and for databases in elastic pools, the server admin account or the Azure Active Directory admin account is required. Для всех остальных целей службы базы данных SQL VIEW DATABASE STATE разрешение требуется в базе данных.On all other SQL Database service objectives, the VIEW DATABASE STATE permission is required in the database.

КомментарииRemarks

sys.dm_exec_query_optimizer_info содержит следующие свойства (счетчики).sys.dm_exec_query_optimizer_info contains the following properties (counters). Все значения частотности рассматриваются совокупно и при перезапуске системы устанавливаются в 0.All occurrence values are cumulative and are set to 0 at system restart. Все значения полей значений при перезапуске системы устанавливаются в NULL.All values for value fields are set to NULL at system restart. Все значения значимых столбцов, по которым определяется среднее, используют значение частотности из той же строки, что и знаменатель в вычислении среднего.All value-column values that specify an average use the occurrence value from the same row as the denominator in the calculation of the average. Все оптимизации запросов измеряются, когда SQL ServerSQL Server определяет изменения в dm_exec_query_optimizer_info, включая запросы, создаваемые пользователями и системой.All query optimizations are measured when SQL ServerSQL Server determines changes to dm_exec_query_optimizer_info, including both user- and system-generated queries. Выполнение уже кэшированного плана не изменяет значения в dm_exec_query_optimizer_info, учитываются только оптимизации.Execution of an already-cached plan does not change values in dm_exec_query_optimizer_info, only optimizations are significant.

СчетчикCounter НаличиеOccurrence ЗначениеValue
оптимизацииoptimizations Общее число операций оптимизации.Total number of optimizations. НеприменимоNot applicable
затраченное времяelapsed time Общее число операций оптимизации.Total number of optimizations. Среднее время, затраченное на оптимизацию отдельной инструкции (запроса), в секундах.Average elapsed time per optimization of an individual statement (query), in seconds.
окончательные затратыfinal cost Общее число операций оптимизации.Total number of optimizations. Средняя оценка затрат для оптимизированного плана во внутренних единицах затрат.Average estimated cost for an optimized plan in internal cost units.
обычный планtrivial plan Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
задачиtasks Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
без планаno plan Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
search 0search 0 Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
search 0 timesearch 0 time Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
search 0 taskssearch 0 tasks Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
search 1search 1 Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
search 1 timesearch 1 time Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
search 1 taskssearch 1 tasks Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
поиск 2search 2 Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
время поиска 2search 2 time Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
задачи поиска 2search 2 tasks Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
gain stage 0 to stage 1gain stage 0 to stage 1 Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
выигрыш при переходе от стадии 1 к стадии 2gain stage 1 to stage 2 Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
timeouttimeout Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
превышение предела памятиmemory limit exceeded Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
инструкции insertinsert stmt Количество операций оптимизации для инструкций INSERT.Number of optimizations that are for INSERT statements. НеприменимоNot applicable
инструкции deletedelete stmt Количество операций оптимизации для инструкций DELETE.Number of optimizations that are for DELETE statements. НеприменимоNot applicable
инструкции updateupdate stmt Количество операций оптимизации для инструкций UPDATE.Number of optimizations that are for UPDATE statements. НеприменимоNot applicable
содержащие вложенный запросcontains subquery Количество операций оптимизации для запросов, содержащих как минимум один вложенный запрос.Number of optimizations for a query that contains at least one subquery. НеприменимоNot applicable
сбой устранения вложенностиunnest failed Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
таблицыtables Общее число операций оптимизации.Total number of optimizations. Среднее число таблиц, на которые ссылается оптимизированный запрос.Average number of tables referenced per query optimized.
указанияhints Количество раз, когда было задано указание.Number of times some hint was specified. Подсчитанные подсказки включают в себя указания запросов соединения, ГРУППИРОВАНия, объединения и ПРИНУДИТЕЛЬного УПОРЯДОЧЕНия, параметр ПРИНУДИТЕЛЬного задания плана и указания соединения.Hints counted include: JOIN, GROUP, UNION and FORCE ORDER query hints, FORCE PLAN set option, and join hints. НеприменимоNot applicable
указание упорядочиванияorder hint Количество раз, когда было задано указание принудительного упорядочивания.Number of times a force order hint was specified. НеприменимоNot applicable
указание соединенияjoin hint Количество раз, когда по указанию соединения принудительно вызывался алгоритм соединения.Number of times the join algorithm was forced by a join hint. НеприменимоNot applicable
обращение к представлениюview reference Количество раз, когда производилось обращение к представлению в запросе.Number of times a view has been referenced in a query. НеприменимоNot applicable
удаленный запросremote query Количество операций оптимизации, при которых запрос обращался как минимум к одному удаленному источнику данных, например к таблице с четырехкомпонентным именем или результату инструкции OPENROWSET.Number of optimizations where the query referenced at least one remote data source, such as a table with a four-part name or an OPENROWSET result. НеприменимоNot applicable
максимальное DOPmaximum DOP Общее число операций оптимизации.Total number of optimizations. Среднее эффективное значение MAXDOP для оптимизированного плана.Average effective MAXDOP value for an optimized plan. По умолчанию действующее значение MAXDOP определяется параметром конфигурации сервера max degree of parallelism и может быть переопределено для конкретного запроса по значению подсказки запроса MAXDOP.By default, effective MAXDOP is determined by the max degree of parallelism server configuration option, and may be overridden for a specific query by the value of the MAXDOP query hint.
максимальный уровень рекурсииmaximum recursion level Количество операций оптимизации, в которых был задан уровень MAXRECURSION больше 0 в рамках указания запроса.Number of optimizations in which a MAXRECURSION level greater than 0 has been specified with the query hint. Средний уровень MAXRECURSION в операциях оптимизации, для которых был задан максимальный уровень рекурсии в рамках указания запроса.Average MAXRECURSION level in optimizations where a maximum recursion level is specified with the query hint.
загруженные индексированные представленияindexed views loaded Только для внутреннего использования.Internal only Только для внутреннего использования.Internal only
сопоставленные индексированные представленияindexed views matched Количество операций оптимизации, в которых было сопоставлено одно или несколько индексированных представлений.Number of optimizations where one or more indexed views have been matched. Среднее количество сопоставленных представлений.Average number of views matched.
использованные индексированные представленияindexed views used Количество операций оптимизации, для которых в выходном плане было использовано одно или несколько индексированных представлений после согласования.Number of optimizations where one or more indexed views are used in the output plan after being matched. Среднее количество использованных представлений.Average number of views used.
обновленные индексированные представленияindexed views updated Количество операций оптимизации DML-инструкции, выдающих план, обслуживающий одно или несколько индексированных представлений.Number of optimizations of a DML statement that produce a plan that maintains one or more indexed views. Среднее количество обслуженных представлений.Average number of views maintained.
запрос динамического курсораdynamic cursor request Количество операций оптимизации, для которых был указан запрос динамического курсора.Number of optimizations in which a dynamic cursor request has been specified. НеприменимоNot applicable
запрос быстрого перемещения курсора впередfast forward cursor request Количество операций оптимизации, для которых был указан запрос однопроходного курсора.Number of optimizations in which a fast-forward cursor request has been specified. НеприменимоNot applicable
merge stmtmerge stmt Количество операций оптимизации для инструкций MERGE.Number of optimizations that are for MERGE statements. НеприменимоNot applicable

ПримерыExamples

A.A. Просмотр статистики выполнения оптимизатораViewing statistics on optimizer execution

Каковы текущие статистики выполнения оптимизатора для данного экземпляра SQL ServerSQL Server?What are the current optimizer execution statistics for this instance of SQL ServerSQL Server?

SELECT * FROM sys.dm_exec_query_optimizer_info;  

Б.B. Просмотр общего количества операций оптимизацииViewing the total number of optimizations

Количество выполняемых операций оптимизации.How many optimizations are performed?

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

В.C. Среднее время, затраченное на операцию оптимизацииAverage elapsed time per optimization

Каково среднее время, затраченное на операцию оптимизации?What is the average elapsed time per optimization?

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

Г.D. Доля операций оптимизации, в которых задействованы вложенные запросыFraction of optimizations that involve subqueries

Доля оптимизированных запросов, содержащих вложенные запросы.What fraction of optimized queries contained a subquery?

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;  

См. также:See Also

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