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


sys.dm_db_missing_index_group_stats

Возвращает сводку сведений о группах отсутствующих индексов, за исключением пространственных индексов.

Имя столбца

Тип данных

Описание

group_handle

int

Идентифицирует группу отсутствующих индексов. Этот идентификатор уникален в пределах сервера.

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

Группа индексов содержит только один индекс.

unique_compiles

bigint

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

user_seeks

bigint

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

user_scans

bigint

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

last_user_seek

datetime

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

last_user_scan

datetime

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

avg_total_user_cost

float

Средняя стоимость запросов пользователя, которая могла быть уменьшена с помощью индекса в группе.

avg_user_impact

float

Средний процент выигрыша, который могли получить запросы пользователя, если создать эту группу отсутствующих индексов. Значение показывает, что стоимость запроса в среднем уменьшится на этот процент, если создать эту группу отсутствующих индексов.

system_seeks

bigint

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

system_scans

bigint

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

last_system_seek

datetime

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

last_system_scan

datetime

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

avg_total_system_cost

float

Средняя стоимость системных запросов, которая могла быть уменьшена с помощью индекса в группе.

avg_system_impact

float

Средний процент выигрыша, который могли получить запросы системы, если создать эту группу отсутствующих индексов. Значение показывает, что стоимость запроса в среднем уменьшится на этот процент, если создать эту группу отсутствующих индексов.

Замечания

Сведения, возвращаемые представлением sys.dm_db_missing_index_group_stats, обновляются при каждом выполнении запроса, а не при каждой компиляции или повторной компиляции запроса. Статистика использования не сохраняется и хранится только до перезапуска SQL Server. Администраторы базы данных должны периодически делать резервные копии сведений об отсутствующих индексах, если необходимо сохранить статистику использования после перезагрузки сервера.

Дополнительные сведения о включении и отключении сбора данных об отсутствующих индексах см. в разделе О функции отсутствующих индексов.

Дополнительные сведения об ограничениях этой возможности см. в разделе Ограничения функции информирования об отсутствующих индексах.

Дополнительные сведения о согласованности транзакций в отношении к отсутствующим индексам объектов DMO см. в разделе О функции отсутствующих индексов.

Разрешения

Для выполнения запроса к этому динамическому административному представлению пользователям должно быть предоставлено разрешение VIEW SERVER STATE или любое другое, подразумевающее разрешение VIEW SERVER STATE.

Примеры

В следующих примерах показано использование динамического административного представления sys.dm_db_missing_index_group_stats.

А. Поиск 10 отсутствующих индексов с самым высоким ожидаемым улучшением производительности запросов пользователя

Следующий запрос определяет, какие 10 отсутствующих индексов окажут самое высокое ожидаемое совокупное улучшение производительности запросов пользователя в порядке убывания.

SELECT TOP 10 *
FROM sys.dm_db_missing_index_group_stats
ORDER BY avg_total_user_cost * avg_user_impact * (user_seeks + user_scans)DESC;

Б. Поиск отдельных отсутствующих индексов и подробных сведений об их столбцах для определенной группы отсутствующих индексов

Следующий запрос определяет, какие отсутствующие индексы составляют отдельную группу отсутствующих индексов, и отображает подробные сведения об их столбцах. Для данного примера дескриптор группы отсутствующих индексов равен 24.

SELECT migs.group_handle, mid.*
FROM sys.dm_db_missing_index_group_stats AS migs
INNER JOIN sys.dm_db_missing_index_groups AS mig
    ON (migs.group_handle = mig.index_group_handle)
INNER JOIN sys.dm_db_missing_index_details AS mid
    ON (mig.index_handle = mid.index_handle)
WHERE migs.group_handle = 24;

Этот запрос предоставляет имя базы данных, схемы и таблицы, в которой отсутствует индекс. Он также предоставляет имена столбцов, которые должны использоваться для ключа индекса. При записи инструкции CREATE INDEX DDL для создания отсутствующих индексов в предложении ON <table_name> вначале перечислите столбцы равенства, а затем столбцы неравенства. Включенные столбцы должны быть перечислены в предложении INCLUDE инструкции CREATE INDEX. Чтобы определить эффективный порядок столбцов равенства, расположите их на основе их выборности, перечисляя наиболее выбираемые столбцы первыми (крайние левые в списке столбцов).

Дополнительные сведения об использовании сведений, возвращаемых этими объектами DMO для записи инструкций CREATE INDEX DDL, см. в разделе Использование сведений об отсутствующих индексах для формирования инструкций CREATE INDEX.