sys.dm_db_missing_index_columns

更新: 2006 年 12 月 12 日

傳回有關遺漏索引之資料庫表格資料行的資訊。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 "=" 以外的其他任何比較運算子都可表示不相等。如需比較運算子的完整清單,請參閱<比較運算子 (Database Engine)>。

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

備註

sys.dm_db_missing_index_columns 傳回的資訊會在查詢最佳化工具最佳化查詢時更新,而不會一直保存。遺漏索引資訊只會保留到 SQL Server 重新啟動為止。如果資料庫管理員想要在伺服器回收之後保留遺漏索引資訊,應該定期製作該項資訊的備份副本。

如需有關啟用及停用遺漏索引資訊集合的資訊,請參閱<關於遺漏索引功能>。

凡是能夠讀取對應於 index_handle 的遺漏索引資訊、處理該資訊,並將其轉換成實作遺漏索引之 CREATE INDEX DDL 陳述式的任何工具,都可以使用 sys.dm_db_missing_index_columns 動態管理函數的輸出。如需有關建立 DDL 陳述式的詳細資訊,請參閱<使用遺漏索引資訊撰寫 CREATE INDEX 陳述式>。

如需有關這項功能之限制的詳細資訊,請參閱<使用遺漏索引功能的限制>。

交易一致性

如果交易建立或卸除資料表,便會從這個動態管理物件中移除包含有關已卸除物件之遺漏索引資訊的資料列,以維持交易的一致性。如需有關與遺漏索引動態管理物件相關之交易一致性的詳細資訊,請參閱<關於遺漏索引功能>。

權限

使用者必須取得 VIEW SERVER STATE 權限或隱含 VIEW SERVER STATE 權限的任何權限,才能查詢此動態管理函數。

範例

下列範例會對 Address 資料表執行查詢,然後使用 sys.dm_db_missing_index_columns 動態管理檢視執行查詢,傳回遺漏索引的資料表資料行。

USE AdventureWorks;
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
sys.dm_db_missing_index_groups
sys.dm_db_missing_index_group_stats

其他資源

關於遺漏索引功能

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 12 月 12 日

新增內容:
  • 新增<範例>一節。
變更的內容:
  • 更正 column_id 的定義。