sys.dm_exec_query_optimizer_info (Transact-SQL)sys.dm_exec_query_optimizer_info (Transact-SQL)
Применимо к:Applies to: SQL ServerSQL Server (все поддерживаемые версии)
SQL ServerSQL Server (all supported versions)
База данных SQL AzureAzure SQL Database
База данных SQL AzureAzure SQL Database
Управляемый экземпляр SQL AzureAzure SQL Managed Instance
Управляемый экземпляр SQL AzureAzure SQL Managed Instance
Azure Synapse AnalyticsAzure Synapse Analytics
Azure Synapse AnalyticsAzure Synapse Analytics
Параллельное хранилище данныхParallel Data Warehouse
Параллельное хранилище данныхParallel Data Warehouse
SQL ServerSQL Server (все поддерживаемые версии)
SQL ServerSQL Server (all supported versions)
База данных SQL AzureAzure SQL Database
База данных SQL AzureAzure SQL Database
Управляемый экземпляр SQL AzureAzure SQL Managed Instance
Управляемый экземпляр SQL AzureAzure SQL Managed Instance
Azure Synapse AnalyticsAzure Synapse Analytics
Azure Synapse AnalyticsAzure Synapse Analytics
Параллельное хранилище данныхParallel Data Warehouse
Параллельное хранилище данных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)