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


sys.dm_db_missing_index_group_stats (Transact-SQL)

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

Имя столбца

Тип данных

Описание

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. Администраторы базы данных должны периодически делать резервные копии сведений об отсутствующих индексах, если необходимо сохранить статистику использования после перезагрузки сервера.

Разрешения

Для выполнения запроса к этому динамическому административному представлению пользователям должно быть предоставлено разрешение 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> инструкции CREATE INDEX вначале перечислите столбцы равенства, а затем столбцы неравенства. Включенные столбцы должны быть перечислены в предложении INCLUDE инструкции CREATE INDEX. Чтобы определить эффективный порядок столбцов равенства, расположите их на основе их выборности, перечисляя наиболее выбираемые столбцы первыми (крайние левые в списке столбцов).

См. также

Справочник

sys.dm_db_missing_index_columns (Transact-SQL)

sys.dm_db_missing_index_details (Transact-SQL)

sys.dm_db_missing_index_groups (Transact-SQL)

CREATE INDEX (Transact-SQL)