close

Database的調效面向是又廣又深的,

但一般很難了解到底有全部需要調整哪些(硬碟, CPU, 記憶體, 頻寬, Sql Server參數, T-Sql...).

就算是單單只有T-Sql的部分也是繁複的很,

是調整ddl的設計,還是改進dml的部分!?

光想到要收集所有的Sql指令就很頭大,

還有從程式的ORM語法到實際在Sql Server上執行的T-Sql指令可能相去甚遠,

這篇文章就介紹最常使用的索引調效方式 - Database Engine Tuning Advisor

以下是MSDN對Database Engine Tuning Advisor的介紹,

 

Database Engine Tuning Advisor 微調功能

 

Database Engine Tuning Advisor 可以執行下列動作:

  • 利用查詢最佳化工具來分析工作負載中的查詢,以建議資料庫索引的最佳混合情況。

  • 針對工作負載所參考的資料庫來建議對齊或非對齊的資料分割。

  • 建議工作負載所參考之資料庫的索引檢視。

  • 分析所提出之變更的效果,其中包括索引用法、資料表之間的查詢分佈,以及工作負載中的查詢效能。

  • 建議針對一小組問題查詢來微調資料庫的方式。

  • 可讓您指定磁碟空間條件約束之類的進階選項來自訂建議。

  • 提供報表來總結針對給定工作負載來實作建議的效果。

  • 設想替代方案,讓您以假設性組態的形式來提供可能的設計選項,供 Database Engine Tuning Advisor 進行評估。

最主要就是推薦索引與統計資料,基本不會對已設計好的Schema作出變動,也不會推薦修改查詢語法(當然DTA可能對slow query提出修改索引的建議)

 

第一步,

使用Sql Profiler記錄Sql Server所執行的T-Sql,(至於要記錄什麼可自行配置或預設)

sqlprofiler-1.png

sqlprofiler-2.png

sqlprofiler-3.png

將錄完的結果存成檔案(*.trc)

 

第二步

使用Database Engine Tuning Advisor,開啟新的工作階段,並載入檔案,依圖選擇所需.開始分析

DTA-1.png

DTA-2.png

分析的結果,可以讓人清楚知道調整哪個建議會得到多少效能的改進,

不過DTA不是萬能的,最好還是大至看過每個建議為好.

如果完全不懂DB卻被指派來調效,那就讓DTA上吧.

 

參考

Database Engine Tuning Advisor 概觀

arrow
arrow
    創作者介紹
    創作者 abcg5 的頭像
    abcg5

    Aaron Yang

    abcg5 發表在 痞客邦 留言(0) 人氣()