Sql-Server

我在使用 Database Tuning Advisor 時做錯了什麼?

  • February 8, 2022

我的背景:我是開發人員/架構師,而不是 DBA。對不起!

所以我們有一個 ~400 表 75GB 的數據庫。我執行 Profiler 約 24 小時(“Tuning”模板減去LoginName),並在跟踪文件中記錄了約 7GB 的使用量。然後,我針對我們的生產數據庫(下班後)在此跟踪文件(無分區、保留聚集索引、PDS 推薦:索引)上執行數據庫引擎優化顧問。我給了它大約 4 個小時來分析。這是我得到的總結結果:

DTA 匯總結果

在我看來似乎“錯誤”的事情是:

  1. 它只調整了 ~530k 查詢中的 ~9k
  2. 它建議我刪除大量索引(事實上,其中大部分)
  3. 建議我創建 0 個索引

這對你們來說聽起來對嗎?我希望它會刪除我的大部分索引,但隨後會創建大量新索引。另外,如果分析 9k 查詢需要 4 個小時,那麼我是否可以考慮到正常一天的使用價值?與大多數大型數據庫相比,我們的數據庫消耗相當少(總共約 50 個使用者)。

我想我要麼誤解了什麼,要麼只是做錯了什麼。

我不會打擾 DTA。為了得到粗略的結果,需要做大量的工作。每個進入索引調整的人最終都會意識到它既是一門科學也是一門藝術,而且還有很多。您可以使用工具來獲得建議,但盲目地實施這些建議幾乎總是會導致問題出現。

相反,我會嘗試BlitzIndex。它將利用 SQL Server 已經維護的統計資訊來確定您可以改進索引的地方(並在幾秒鐘內完成)。它還提供了有關如何使用結果的非常易於訪問的文件。每個結果都包含指向相關文件的連結。這就是我這些天維護索引的方式。

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