sys.dm_db_missing_index_group_stats (Transact-SQL)
Возвращает сводку сведений о группах отсутствующих индексов, за исключением пространственных индексов.
Динамические административные представления в среде База данных SQL Windows Azure не могут предоставлять информацию, которая может повлиять на автономность базы данных, или информацию о других базах данных, к которым имеет доступ пользователь. Чтобы избежать предоставления этих сведений, все строки, содержащие данные, не принадлежащие к подключенному клиенту, фильтруются.
Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск). |
Имя столбца |
Тип данных |
Описание |
---|---|---|
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)