黃偉榮的學習筆記

軟體的世界變化萬千,小小的我只能在這洪流奮發向上以求立足。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

使用 SQL Server Database Tuning Advisor(DTA)

Posted on 2008-08-01 23:20  黃偉榮  阅读(3557)  评论(0编辑  收藏  举报

前言

從上回資料庫索引的重要性中我知道了資料庫索引的重要,但我的經驗還淺,可能不清楚有那些索引需要建立,除了土法煉鋼一個一個試外,軟微有出DTA工具(Oracle不知到有沒有)協助你找出那些索引需要建立。

 

特色

  • 利用查詢最佳化工具來分析工作負載中的查詢,以建議資料庫索引的最佳混合情況。
  • 針對工作負載所參考的資料庫來建議對齊或非對齊的資料分割。
  • 建議工作負載所參考之資料庫的索引檢視。
  • 分析所提出之變更的效果,其中包括索引用法、資料表之間的查詢分佈,以及工作負載中的查詢效能。
  • 建議針對一小組問題查詢來微調資料庫的方式。
  • 可讓您指定磁碟空間條件約束之類的進階選項來自訂建議。
  • 提供報表來總結針對給定工作負載來實作建議的效果。
  • 設想替代方案,讓您以假設性組態的形式來提供可能的設計選項,供 Database Engine Tuning Advisor 進行評估。

 

安裝

SQL Server Database Tuning Advisor附屬在用戶端元件的管理工具中,一般安裝時都會安裝(你也可以不安裝資料庫,只安裝工具)。

圖1 安裝SQL Server Database Tuning Advisor 
圖1 安裝SQL Server Database Tuning Advisor

附註:
註:DAT除了無法連結SQL Express,其他版本都可以使用(SQL 2000就不知道了)。

 

 

 

啟動

啟動DTA有幾種方式

  1. 開啟[Sql Server Management Studio],於查尋視窗(可以是自己打,也可以是開始檔案),右鍵點擊[Analyze Query In Database Engine Tuning Advisor](我比較喜歡用這個方式)
    圖二 於查尋視窗啟動DTA 
    圖二 於查尋視窗啟動DTA。
  2. 在 Windows 的 [開始] 功能表上,依序指向 [程式集]、[Microsoft SQL Server 2005] 和 [效能工具],再按一下 [Database Engine Tuning Advisor]。

 

這二種方式啟動的主要差異點,方法一使用查尋而方法二使用檔案或表格來分析。

圖三 二個方式啟動的差異

圖三 二個方式啟動的差異。
 

算是一個小技巧吧,按下資料庫旁的小箭頭,列出的資料有每個Table的資料列

圖四 列出的資料有每個Table的資料列

圖四 列出的資料有每個Table的資料列

 

執行

設定好條件後(進階設定請參考線上文件,一般只要用方式一啟動再選擇Table就可以執行了)

  • 在[Actions]工具列上,點擊[Start Analysis]或按F5。
  • 執行時會增加[Progress]標籤,顯示目前的執行結果。
  • 報行完成時會增加[Recommendations]與[Reports]二個標籤。

圖五 執行完成的建議選項

圖五 執行完成的建議選項

 

建議

執行完成時,DTA會分析出可改善的百分率及二種建議。

  • Patitiion
  • Index

如果你覺得建議沒有問題可以套用建議或儲存。

  • 在[Actions]工具列上,點擊[Apply Recommendations]或[Save Recommendations]。

圖六 建議的內容

圖六 建議的內容

 

報表

一些資訊,自己看吧。

 

後話

DTA把每一個分析,叫作[Session],每一個[Session]只能執行一次,如果想要再執行同樣的[Session],我用的方式是匯出再匯入,不是很方便,我有把目前正在開發的專案資料庫拿來分析,一個SQL語法列了7、8建議,其中一個Table就要建立5、6索引,有點傻掉了,真不知道是否要完全相信它。

 

參考

線上文件

Database Engine Tuning Advisor 參考
http://technet.microsoft.com/zh-tw/library/ms173494.aspx

Database Engine Tuning Advisor 教學課程

http://technet.microsoft.com/zh-tw/library/ms166575.aspx

測試

Virtual Labs

SQL Server 2005 SQL Query Tuning

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032290418&EventCategory=3&culture=en-US&CountryCode=US

注:因為我的個人電腦沒有灌所以我在Virtual Labs上測試。

WebCast

SQL Server 2005 Database Tuning Advisor(英語)

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&EventID=1032275655&CountryCode=US