Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
База данных SQL в Microsoft Fabric
Возвращает сведения о столбцах таблицы базы данных, которые отсутствуют в индексе.
sys.dm_db_missing_index_columns — это динамическая функция управления.
Syntax
sys.dm_db_missing_index_columns(index_handle)
Аргументы
index_handle
Целочисленное значение, уникальным образом идентифицирующее отсутствующий индекс. Его можно получить из следующих объектов DMO.
sys.dm_db_missing_index_details (Transact-SQL)
sys.dm_db_missing_index_groups (Transact-SQL)
Возвращаемая таблица
| Название столбца | Тип данных | Описание |
|---|---|---|
| column_id | int | Идентификатор столбца. |
| column_name | sysname | Имя столбца таблицы. |
| column_usage | varchar(20) | Способ использования столбца запросом. Возможные значения и их описания: Равенство: столбец вносит вклад в предикат, который выражает равенство формы: table.column = constant_value INEQUALITY: столбец вносит вклад в предикат, который выражает неравенство, например предикат формы: table.column>constant_value. Любой оператор сравнения, кроме «=», выражает неравенство. INCLUDE: столбец не используется для оценки предиката, но используется по другой причине, например для покрытия запроса. |
Замечания
Информация, возвращаемая обновлением sys.dm_db_missing_index_columns , когда запрос оптимизирован оптимизатором запросов и не сохраняется. Отсутствующие сведения о индексе хранятся только до перезапуска ядра СУБД. Администраторы базы данных должны периодически делать резервные копии сведений об отсутствующих индексах, чтобы сохранить их после перезагрузки сервера. Узнать время последнего запуска ядра СУБД можно в столбце sqlserver_start_time из sys.dm_os_sys_info.
Согласованность транзакций
Если транзакция создает или удаляет таблицу, то строки, содержащие сведения отсутствующих индексов об удаленных объектах, удаляются из данного объекта DMO, сохраняя согласованность транзакций.
Permissions
Пользователям необходимо предоставить VIEW разрешение SERVER STATE или любое разрешение, подразумевающее VIEW разрешение SERVER STATE для запроса этой динамической функции управления.
Разрешения для SQL Server 2022 и более поздних версий
Требуется VIEW разрешение на состояние производительности сервера на сервере.
Examples
В следующем примере выполняется запрос к таблице Address, а затем выполняется запрос с использованием динамического административного представления sys.dm_db_missing_index_columns для возврата столбцов таблицы, отсутствующих в индексе.
USE AdventureWorks2022;
GO
SELECT City, StateProvinceID, PostalCode
FROM Person.Address
WHERE StateProvinceID = 9;
GO
SELECT mig.*, statement AS table_name,
column_id, column_name, column_usage
FROM sys.dm_db_missing_index_details AS mid
CROSS APPLY sys.dm_db_missing_index_columns (mid.index_handle)
INNER JOIN sys.dm_db_missing_index_groups AS mig ON mig.index_handle = mid.index_handle
ORDER BY mig.index_group_handle, mig.index_handle, column_id;
GO
Отсутствующие предложения по индексу должны сочетаться, если это возможно, с существующими индексами в текущей базе данных. Узнайте, как применять эти предложения в настройке некластеризованных индексов с отсутствующими предложениями индекса.
Связанные материалы
- Настройте некластеризованные индексы с помощью рекомендаций по отсутствующим индексам
- sys.dm_db_missing_index_details (Transact-SQL)
- sys.dm_db_missing_index_groups (Transact-SQL)
- sys.dm_db_missing_index_group_stats (Transact-SQL)
- sys.dm_db_missing_index_group_stats_query (Transact-SQL)
- sys.dm_os_sys_info (Transact-SQL)