运用工具优化数据库设计(Database Engine Tuning Advisor)
Data Engine Tuning Advisor 是SqlServer自帶的數據庫性能調優(yōu)工具之一,我們一起來學習一下怎么用這個工具優(yōu)化數據庫設計
Database Engine Tuning Advisor Tuning?的功能
- Recommend the best mix of indexes for databases by using the query optimizer to analyze queries in a workload.
[翻譯]通過查詢優(yōu)化器分析實際工作負載下的查詢,推薦最好的索引組合 - Recommend aligned or non-aligned partitions for databases referenced in a workload.
[翻譯]為工作狀態(tài)下用到的數據庫推薦對齊(aligned)和非對齊(non-aligned)分區(qū) - Recommend indexed views for databases referenced in a workload.
[翻譯]為工作狀態(tài)下用到的數據庫推薦帶索引的試圖 - Analyze the effects of the proposed changes, including index usage, query distribution among tables, and query performance in the workload.
[翻譯]分析工作狀態(tài)下,對某種變更的效果進行評估,包括索引用法,表間查詢分布,查詢效果 - Recommend ways to tune the database for a small set of problem queries.
[翻譯]對一些有問題的查詢進行調優(yōu)推薦 - Allow you to customize the recommendation by specifying advanced options such as disk space constraints.
[翻譯]可以通過高級設置,比如磁盤空間大小限制來影響其作出的推薦方案 - Provide reports that summarize the effects of implementing the recommendations for a given workload.
[翻譯]提供工作狀態(tài)中其推薦方案的具體實現的效果報告 - Consider alternatives in which you supply possible design choices in the form of hypothetical configurations for Database Engine Tuning Advisor to evaluate.
[翻譯]分析替代方案,你可以提供不同假設的配置下的設計方案供Database Engine Tuning Advisor分析
?
索引優(yōu)化
我們結合示例來看看怎么用調優(yōu)工具優(yōu)化索引:
準備工作
我們使用一個缺少索引測試表,來看看在簡單的查詢條件下,工具能給出什么推薦方案
在我的數據庫中有Orders表,其字段如下圖,其中大約有50w行數據,在這里我故意沒有給Info字段建立索引
創(chuàng)建一個sql語句,模擬實際情況的查詢,在這個例子里我們使用一個簡單的查詢語句
Use [ZhuYiTestDataBase2]--注意一定要記住加上Use的數據庫
select * from Orders where Info<>'abc'--我們用了一個沒有索引的字段作為查詢條件,性能一定不高,看看DETA會有什么高見
并保存為一個.sql文件(在實際運用中,一般一個查詢可能要復雜的多)
開始優(yōu)化
1)運行Database Engine Tuning Advisor,并創(chuàng)建一個Session
2)配置session
在新建的session的配置選項卡中點擊General選項卡(如圖),進行一些常用配置,有如下項需要配置
- Session Name:可以為Session起一個名字,默認為用戶加創(chuàng)建時間
- Workload:工作負載,可以從一個文件,可以從表,我們這個例子里就是我們剛才創(chuàng)建的sql文件,DETA會分析這個語句的執(zhí)行情況,給出優(yōu)化建議
- ?Select database and table to tune:選擇需要優(yōu)化的數據庫和表,在本例中就是我們剛才看到Orders表
- Save tuning log:是否保存優(yōu)化日志
點擊TuningOption選項卡,進行一些高級選項的配置(如圖)
- 首 先我們要選擇需要對哪些配置進行優(yōu)化,在"Physical Design Structures To Use In DataBase"的復選框組中中我們可以需要優(yōu)化指定索引,索引視圖,聚焦索引,或者非聚焦索引,我在本例里面選擇Index,這個選項包括聚焦和非聚 焦索引.
- 接著還有分區(qū)(partion)的選擇,這個復選框組在實際運用中非常有用,通過查詢,可以分析出哪些數據訪問頻率高,哪些低,從而給出分區(qū)的方案,在本例里面我們簡單的選擇no partition
3)運行分析
點擊Action菜單下的Start Analysis,或者運行快捷方式欄的Start Analysis(如圖)
4)查看分析結果
等待一段時間后,程序給出了分析結果
從中可以看到聰明的DETA發(fā)現了查詢中作為條件的Info字段沒有索引,建議我們創(chuàng)建一個索引,點擊可以看到他的創(chuàng)建腳本(如圖)
總結
Database Engine Tuning Advisor的功能遠不只這些,我會在接下來的文章里陸續(xù)講一些其他的用法,這里給出一些資源連接,大家可以自己學習
techNet上的參考
http://technet.microsoft.com/en-us/library/ms166805(SQL.90).aspx
繁體中文版本的
http://technet.microsoft.com/zh-tw/library/ms173448(SQL.90).aspx
轉載于:https://www.cnblogs.com/yizhu2000/archive/2007/08/06/844394.html
總結
以上是生活随笔為你收集整理的运用工具优化数据库设计(Database Engine Tuning Advisor)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Silverlight Expressi
- 下一篇: 关于Linux系统的运行级别