Sql-Server

我可以信任數據庫引擎優化顧問的建議嗎?

  • May 6, 2019

我們的數據庫已經變大了,我們正在努力優化性能。

我們可以通過向數據庫引擎優化顧問提供使用 Profiler 生成的 .trc 文件來遵循其建議嗎?

這是優化的好方法嗎?這些建議的準確性如何?

調整顧問 (DTA) 可以生成有關缺失索引的資訊,但結果僅與您提供的工作負載以及您解釋結果和填補空白的能力一樣好。

  • 您的 .trc 文件可能只包含某些事件,而不是全部,並且可能不涵蓋整個業務週期。因此,如果您有大量人們在月底執行的​​報告,您可能會錯過工作量中最重要的部分。
  • DTA 只考慮提高讀取查詢的性能,並沒有考慮新索引將對工作負載的寫入部分產生什麼影響。索引不是免費的。
  • DTA 傾向於推薦多個冗餘索引,它們的區別僅在於一個附加鍵列或一個包含列。在很多情況下,一個索引可能能夠滿足為兩個單獨的索引生成推薦的兩個查詢。

因此,這些資訊可能很有用,但我絕不會讓任何客戶盲目地實現所有索引。您需要考慮更多的數據點。

例如,您如何得出添加索引會改善您遇到的任何性能問題的結論?您是否執行了任何基線並確定了任何瓶頸?

在不了解它可能對應用程序和伺服器性能產生的總體影響的情況下,您不能也不應該盲目地通過任何工具實施建議。

在盲目實施之前始終對其進行評估。

DTA 將根據送出給它的工作量生成其建議。

來自BOL

*數據庫引擎優化顧問的建議基於SQL Server 查詢優化器對查詢執行成本的**估計。*應用數據庫引擎優化顧問建議後查詢性能的實際改進可能與數據庫引擎優化顧問完成其分析後顯示的估計改進不同。

我並不是說 DTA 的建議是錯誤的或不正確的,只是確保您了解其中的含義,因為您最終可能會在表/列上創建重複的索引或更多統計資訊。

引用自:https://dba.stackexchange.com/questions/42920