sys.dm_db_missing_index_group_stats (Transact-SQL)

傳回有關遺漏索引 (不包含空間索引) 群組的摘要資訊。

資料行名稱

資料類型

描述

group_handle

int

識別一組遺漏的索引。這個識別碼在伺服器中是唯一的。

其他資料行提供有關群組中被視為遺漏之索引的所有查詢資訊。

一個索引群組僅能包含一個索引。

unique_compiles

bigint

由於此遺漏索引群組而獲益之編譯與重新編譯的次數。許多不同查詢的編譯和重新編譯都可以構成這個資料行的值。

user_seeks

bigint

群組中建議索引適用之使用者查詢所造成的搜尋次數。

user_scans

bigint

群組中建議索引適用之使用者查詢所造成的掃描次數。

last_user_seek

datetime

群組中建議索引適用之使用者查詢所造成的上次搜尋日期和時間。

last_user_scan

datetime

群組中建議索引適用之使用者查詢所造成的上次掃描日期和時間。

avg_total_user_cost

float

可依據群組中的索引降低之使用者查詢的平均成本。

avg_user_impact

float

實作此遺漏索引群組時,使用者查詢可能獲得的平均效益百分比。這個值表示如果實作此遺漏索引群組,平均查詢成本將會依此百分比降低。

system_seeks

bigint

群組中建議索引適用之系統查詢 (例如 Auto Stats 查詢) 所造成的搜尋次數。如需詳細資訊,請參閱<Auto Stats 事件類別>。

system_scans

bigint

群組中建議索引適用之系統查詢所造成的掃描次數。

last_system_seek

datetime

群組中建議索引適用之系統查詢所造成的上次系統搜尋日期和時間。

last_system_scan

datetime

群組中建議索引適用之系統查詢所造成的上次系統掃描日期和時間。

avg_total_system_cost

float

可依據群組中的索引降低之系統查詢的平均成本。

avg_system_impact

float

實作此遺漏索引群組時,系統查詢可能獲得的平均效益百分比。這個值表示如果實作此遺漏索引群組,平均查詢成本將會依此百分比降低。

備註

sys.dm_db_missing_index_group_stats 傳回的資訊會在每次執行查詢時更新,而非每次編譯或重新編譯查詢時更新。使用狀況統計資料不會一直保存,只會保留到 SQL Server 重新啟動為止。如果資料庫管理員想要在伺服器回收之後保留使用狀況統計資料,應該定期製作遺漏索引資訊的備份副本。

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

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

如需有關與遺漏索引動態管理物件相關之交易一致性的資訊,請參閱<關於遺漏索引功能>。

權限

若要查詢此動態管理檢視,使用者必須取得 VIEW SERVER STATE 權限或隱含 VIEW SERVER STATE 權限的任何權限。

範例

下列範例說明如何使用 sys.dm_db_missing_index_group_stats 動態管理檢視。

A. 尋找改善使用者查詢之預期效果最高的 10 個遺漏索引

下列查詢決定哪 10 個遺漏查詢對使用者查詢產生的預期累計改善效果最高 (以遞減順序排列)。

SELECT TOP 10 *
FROM sys.dm_db_missing_index_group_stats
ORDER BY avg_total_user_cost * avg_user_impact * (user_seeks + user_scans)DESC;

B. 尋找個別遺漏索引及其特定遺漏索引群組的資料行詳細資料

下列查詢決定哪些遺漏索引構成特定的遺漏索引群組,並顯示其資料行詳細資料。為了符合這個範例的目的,遺漏索引群組控制代碼為 24。

SELECT migs.group_handle, mid.*
FROM sys.dm_db_missing_index_group_stats AS migs
INNER JOIN sys.dm_db_missing_index_groups AS mig
    ON (migs.group_handle = mig.index_group_handle)
INNER JOIN sys.dm_db_missing_index_details AS mid
    ON (mig.index_handle = mid.index_handle)
WHERE migs.group_handle = 24;

此查詢提供遺漏索引之資料庫、結構描述和資料表的名稱。它也提供索引鍵應該使用的資料行名稱。撰寫 CREATE INDEX DDL 陳述式以實作遺漏的索引時,請在 CREATE INDEX 陳述式的 ON <table_name> 子句中,先列出相等資料行,接著再列出不相等資料行。您應該將內含資料行列在 CREATE INDEX 陳述式的 INCLUDE 子句中。若要決定相等資料行的有效次序,請依據其選擇性排列這些資料行,將選擇性最高的資料行列在最前面 (資料行清單的最左邊)。

如需有關如何使用這些動態管理物件傳回之資訊來撰寫 CREATE INDEX DDL 陳述式的詳細資訊,請參閱<使用遺漏索引資訊撰寫 CREATE INDEX 陳述式>。