共用方式為


sys.dm_db_missing_index_columns (Transact-SQL)

傳回有關遺漏索引 (不包括空間索引) 之資料庫表格資料行的資訊。 sys.dm_db_missing_index_columns 是動態管理函數。

語法

sys.dm_db_missing_index_columns(index_handle)

引數

傳回的資料表

資料行名稱

資料類型

說明

column_id

int

資料行的識別碼。

column_name

sysname

資料表資料行的名稱。

column_usage

varchar(20)

查詢使用資料行的方式。 可能的值為:

說明

EQUALITY

作為表示相等之述詞的資料行,格式如下:

table.column =constant_value

INEQUALITY

作為表示不相等之述詞的資料行,例如,格式如下的述詞:

table.column > constant_value

"=" 以外的其他任何比較運算子都可表示不相等。

INCLUDE

資料行不是用來評估述詞,而用於其他原因,例如用來涵蓋查詢。

備註

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)

sys.dm_db_missing_index_groups (Transact-SQL)

sys.dm_db_missing_index_group_stats (Transact-SQL)