相關的查詢微調功能
下列 SQL Server 查詢微調功能可與遺漏索引功能搭配使用:
sys.dm_db_index_usage_stats 和 sys.dm_exec_query_stats 動態管理檢視
Database Engine Tuning Advisor
sys.dm_db_index_usage_stats 會收集 SQL Server 執行個體上現有索引的索引使用方式資訊。sys.dm_exec_query_stats 會傳回快取查詢計畫的彙總效能統計資料。它會擷取類似執行快取計畫經過時間等資訊,以及快取計畫執行時所執行的邏輯和實體讀取數。
Database Engine Tuning Advisor 是獨立的工具,用以分析整個 SQL Server 工作負載,以及產生實體設計結構組態的建議 (例如索引、索引檢視或資料分割)。
下節提供 Database Engine Tuning Advisor 與遺漏索引功能的詳細比較。
遺漏索引功能與 Database Engine Tuning Advisor
遺漏索引是輕量型伺服器端一律啟動功能,用於捕捉和更正錯誤。相反地,Database Engine Tuning Advisor 是完整工具,用以存取實體資料庫設計,以及建議新的實體設計結構以改進效能。Database Engine Tuning Advisor 不僅會考慮索引,也會考慮是否應該使用索引檢視或資料分割來改進查詢效能。
下表詳細比較遺漏索引功能和 Database Engine Tuning Advisor:
比較點 |
遺漏索引功能 |
Database Engine Tuning Advisor |
---|---|---|
如何部署? |
伺服器端 |
用戶端獨立應用程式。 |
可用性? |
一律開啟 |
由資料庫管理員啟動,或在指令碼中叫用。 |
分析範圍? |
快速特定分析,提供僅遺漏索引的有限資訊。 |
在整個工作負載分析,提供提交工作負載內容中最佳實體資料庫設計組態的完整建議報表。 |
可用 UPDATE、INSERT 和 DELETE 陳述式的因素計入分析? |
否 |
是 |
可用磁碟儲存體空間的因素計入分析? |
否 |
是 |
在建議的索引中排序資料行? |
否,您必須手動排序 CREATE INDEX 陳述式中的資料行。 |
根據查詢執行成本,自動決定所建議索引中的資料行順序。 |
建議叢集索引? |
否 |
是 |
建議涵蓋索引? |
是 |
是 |
建議非涵蓋索引? |
是 |
是 |
建議索引檢視? |
否 |
是 |
建議資料分割? |
否 |
是 |
建議的基礎? |
大約查詢執行成本是由查詢最佳化工具所估計。 |
查詢執行成本是由查詢最佳化工具所估計。 |
實作建議的影響為何? |
會報告加入遺漏索引的大約影響。如需詳細資訊,請參閱<sys.dm_db_missing_index_group_stats (Transact-SQL)>。 |
會產生十五個不同的分析報表,提供實作建議之影響的資訊。如需詳細資訊,請參閱<選擇 Database Engine Tuning Advisor 報表>。 |
如果實作識別的遺漏索引,可能會改進查詢效能。您可使用 Database Engine Tuning Advisor 使用者指定的組態功能和評估模式,來決定實作遺漏索引對整個工作負載的影響。如需詳細資訊,請參閱<使用 Database Engine Tuning Advisor 探勘分析>。
即使對於單一查詢工作負載,Database Engine Tuning Advisor 和遺漏索引功能都可傳回不同的建議。因為遺漏索引功能建議之索引的索引鍵資料行不區分順序,所以會發生這種情況。另一方面,Database Engine Tuning Advisor 建議包含索引之索引鍵資料行的順序,以最佳化查詢效能。
摘要
遺漏索引功能可用來捕捉和更正索引錯誤,而 Database Engine Tuning Advisor 可用來更正索引錯誤以及完整微調伺服器上的工作負載。您可使用遺漏索引功能來產生候選索引,但應使用 Database Engine Tuning Advisor 來驗證它們。