sys.dm_db_missing_index_columns (Transact-SQL)
傳回有關遺漏索引 (不包括空間索引) 之資料庫表格資料行的資訊。 sys.dm_db_missing_index_columns 是動態管理函數。
語法
sys.dm_db_missing_index_columns(index_handle)
引數
index_handle
唯一識別遺漏索引的整數。 您可以從下列動態管理物件中取得:
傳回的資料表
資料行名稱 |
資料類型 |
說明 |
||||||||
---|---|---|---|---|---|---|---|---|---|---|
column_id |
int |
資料行的識別碼。 |
||||||||
column_name |
sysname |
資料表資料行的名稱。 |
||||||||
column_usage |
varchar(20) |
查詢使用資料行的方式。 可能的值為:
|
備註
sys.dm_db_missing_index_columns 傳回的資訊會在查詢最佳化工具最佳化查詢時更新,而不會一直保存。 遺漏索引資訊只會保留到 SQL Server 重新啟動為止。 如果資料庫管理員想要在伺服器回收之後保留遺漏索引資訊,應該定期製作該項資訊的備份副本。
交易一致性
如果交易建立或卸除資料表,便會從這個動態管理物件中移除包含有關已卸除物件之遺漏索引資訊的資料列,以維持交易的一致性。
權限
使用者必須取得 VIEW SERVER STATE 權限或隱含 VIEW SERVER STATE 權限的任何權限,才能查詢此動態管理函數。
範例
下列範例會對 Address 資料表執行查詢,然後使用 sys.dm_db_missing_index_columns 動態管理檢視執行查詢,傳回遺漏索引的資料表資料行。
USE AdventureWorks2012;
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)