前言
從上回資料庫索引的重要性中我知道了資料庫索引的重要,但我的經驗還淺,可能不清楚有那些索引需要建立,除了土法煉鋼一個一個試外,軟微有出DTA工具(Oracle不知到有沒有)協助你找出那些索引需要建立。
特色
- 利用查詢最佳化工具來分析工作負載中的查詢,以建議資料庫索引的最佳混合情況。
- 針對工作負載所參考的資料庫來建議對齊或非對齊的資料分割。
- 建議工作負載所參考之資料庫的索引檢視。
- 分析所提出之變更的效果,其中包括索引用法、資料表之間的查詢分佈,以及工作負載中的查詢效能。
- 建議針對一小組問題查詢來微調資料庫的方式。
- 可讓您指定磁碟空間條件約束之類的進階選項來自訂建議。
- 提供報表來總結針對給定工作負載來實作建議的效果。
- 設想替代方案,讓您以假設性組態的形式來提供可能的設計選項,供 Database Engine Tuning Advisor 進行評估。
安裝
SQL Server Database Tuning Advisor附屬在用戶端元件的管理工具中,一般安裝時都會安裝(你也可以不安裝資料庫,只安裝工具)。
圖1 安裝SQL Server Database Tuning Advisor
附註: |
---|
註:DAT除了無法連結SQL Express,其他版本都可以使用(SQL 2000就不知道了)。 |
啟動
啟動DTA有幾種方式
- 開啟[Sql Server Management Studio],於查尋視窗(可以是自己打,也可以是開始檔案),右鍵點擊[Analyze Query In Database Engine Tuning Advisor](我比較喜歡用這個方式)
圖二 於查尋視窗啟動DTA。
- 在 Windows 的 [開始] 功能表上,依序指向 [程式集]、[Microsoft SQL Server 2005] 和 [效能工具],再按一下 [Database Engine Tuning Advisor]。
這二種方式啟動的主要差異點,方法一使用查尋而方法二使用檔案或表格來分析。
圖三 二個方式啟動的差異。
算是一個小技巧吧,按下資料庫旁的小箭頭,列出的資料有每個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.aspxDatabase Engine Tuning Advisor 教學課程
測試
Virtual Labs
SQL Server 2005 SQL Query Tuning
注:因為我的個人電腦沒有灌所以我在Virtual Labs上測試。
WebCast
SQL Server 2005 Database Tuning Advisor(英語)