SQL Server 查詢優化功能

iSQlServer發表於2008-12-22

下列 SQL Server 查詢優化功能可與缺失索引功能一起使用:

sys.dm_db_index_usage_stats 和 sys.dm_exec_query_stats 動態管理檢視

資料庫引擎優化顧問

sys.dm_db_index_usage_stats 收集有關 SQL Server 例項上現有索引的索引使用資訊。sys.dm_exec_query_stats 返回有關快取查詢計劃的聚合效能統計資訊。它可捕獲諸如快取計劃已執行的時間、快取計劃進行時所執行的邏輯和物理讀取運算元等資訊。

資料庫引擎優化顧問是一個獨立的工具,可對整個 SQL Server 工作負荷進行分析,並針對物理設計結構(例如索引、索引檢視或分割槽)的配置生成建議。

下面將對資料庫引擎優化顧問與缺失索引功能進行詳細比較。

 缺失索引功能與資料庫引擎優化顧問
缺失索引是輕型的且始終啟用的伺服器端功能,用於捕獲並更正索引錯誤。相反,資料庫引擎優化顧問是一個綜合工具,可用於評估物理資料庫設計,並建議新的物理設計結構以改善效能。資料庫引擎優化顧問不僅考慮索引,還考慮應使用索引檢視還是使用分割槽來提高查詢效能。

下表對缺失索引功能和資料庫引擎優化顧問進行更詳細的比較:

比較點  缺失索引功能  資料庫引擎優化顧問 
如何部署?
 伺服器端
 客戶端、獨立應用程式。
 
可用性?
 始終啟用
 由資料庫管理員啟動或在指令碼中呼叫。
 
分析範圍?
 快速即席分析,僅提供有關缺失索引的有限資訊。
 徹底的工作負荷分析,提供已提交工作負荷環境下最佳物理資料庫設計配置的完整建議報告。
 
分析中將 UPDATE、INSERT 和 DELETE 語句作為考慮因素嗎?
 否
 是
 
分析中將可用磁碟儲存空間作為考慮因素嗎?
 否
 是
 
列是按照建議的索引排列嗎?
 否,必須手動排序 CREATE INDEX 語句中的列。
 基於查詢執行開銷,按照建議的索引自動確定列的順序。
 
建議使用聚集索引嗎?
 否
 是
 
建議使用涵蓋索引嗎?
 是
 是
 
建議使用非涵蓋索引嗎?
 是
 是
 
建議使用索引檢視嗎?
 否
 是
 
建議使用分割槽嗎?
 否
 是
 
建議的依據是什麼?
 由查詢優化器估計查詢執行的大致開銷。
 由查詢優化器估計查詢執行開銷。
 
實現這些建議會產生什麼影響?
 報告新增缺失索引所產生的大致影響。有關詳細資訊,請參閱 sys.dm_db_missing_index_group_stats。
 生成十五個不同的分析報表,提供有關實現這些建議所產生的影響的資訊。有關詳細資訊,請參閱選擇資料庫引擎優化顧問報告。
 

如果實現了已標識的缺失索引,則查詢效能可能會得到改善。可使用資料庫引擎優化顧問使用者指定的配置功能和評估模式,來確定實現缺失索引對整個工作負荷的影響。有關詳細資訊,請參閱使用資料庫引擎優化顧問進行探索性分析。

即使對於單個查詢工作負荷,資料庫引擎優化顧問和缺失索引功能也可返回不同的建議。這是因為缺失索引功能建議的索引鍵列不區分先後順序。另一方面,資料庫引擎優化顧問建議包括對索引鍵列進行排序,以優化查詢效能。

總結
缺失索引功能可用於捕獲並更正索引錯誤,而資料庫引擎優化顧問可用於更正索引錯誤,並從整體上優化伺服器中執行的工作負荷。可使用缺失索引功能生成候選索引,但應使用資料庫引擎優化顧問對這些索引進行驗證。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-520797/,如需轉載,請註明出處,否則將追究法律責任。

相關文章