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


sys.dm_db_missing_index_details (Transact-SQL)

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

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

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Имя столбца

Тип данных

Описание

index_handle

int

Идентифицирует специфический отсутствующий индекс. Этот идентификатор уникален для сервера. Столбец index_handle является ключевым для данной таблицы.

database_id

smallint

Идентифицирует базу данных, в которой находится таблица с отсутствующим индексом.

object_id

int

Идентифицирует таблицу, в которой отсутствует индекс.

equality_columns

nvarchar(4000)

Список столбцов с разделителями-запятыми, соответствующих предикатам равенства в форме:

table.column =constant_value

inequality_columns

nvarchar(4000)

Список столбцов с разделителями-запятыми, который соответствует предикатам неравенства, например предикатам в форме:

table.column > constant_value

Любой оператор сравнения, кроме «=», выражает неравенство.

included_columns

nvarchar(4000)

Список столбцов с разделителями-запятыми, необходимых в качестве столбцов для запроса. Дополнительные сведения о включенных столбцах см. в разделе Создание индексов с включенными столбцами.

Для индексов с оптимизацией для памяти (как хэш-индексов, так и некластеризованных индексов с оптимизацией для памяти) не следует учитывать included_columns. Все столбцы таблицы включаются в каждый индекс с оптимизацией для памяти.

инструкция

nvarchar(4000)

Имя таблицы, в которой отсутствует индекс.

Замечания

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

Чтобы определить, в какие группы входит отсутствующий индекс, можно выполнить запрос к динамическому административному представлению sys.dm_db_missing_index_groups, объединив его по эквивалентности с представлением sys.dm_db_missing_index_details, основанным на столбце index_handle.

Использование сведений об отсутствующих индексах в инструкциях CREATE INDEX

Для преобразования сведений, возвращенных представлением sys.dm_db_missing_index_details инструкции CREATE INDEX для индексов с оптимизацией для памяти и индексов на основе диска, столбцы равенства должны быть помещены перед столбцами неравенства, а вместе они должны образовать индекс ключа. Включенные столбцы должны быть добавлены в инструкцию CREATE INDEX с помощью предложения INCLUDE. Чтобы определить эффективный порядок столбцов равенства, разместите столбцы согласно частоте их выборки: перечислите наиболее часто выбираемые столбцы вначале (крайнее левое положение в списке столбцов).

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

Согласованность транзакций

Если транзакция создает или удаляет таблицу, то строки, содержащие сведения отсутствующих индексов об удаленных объектах, удаляются из данного объекта DMO, сохраняя согласованность транзакций.

Разрешения

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

См. также

Справочник

sys.dm_db_missing_index_columns (Transact-SQL)

sys.dm_db_missing_index_groups (Transact-SQL)

sys.dm_db_missing_index_group_stats (Transact-SQL)