2011年1月20日 星期四

利用SQL Server 工具自動產生提升SQL執行效能的的Index語法(Auto Create SQL Script of Index - Database Engine Tuning Advisor)

在提升網站速度這個議題上,資料庫能夠迅速回應前端網友的需求,也是一個很重要的部份,良好的索引(Index)設計,通常也可提升資料庫的處理速度,本篇文章即是使用MS SQL Server 2005中的「Database Engine Tuning Advisor」這個工具,進行提升SQL 語法執行效能。


先選定待提升SQL語法


先假設我們發現下面這段SQL 語法執行時,效能很差,我就希望能經由加上Index與其他語法補助,來提升這段sql的執行效能。


select * from systemeventlog where UserName like '%z000%'


使用工具


我們可在SQL Server管理介面上,將這段待執行的sql 語法給選取起來,並且點選「Database Engine Tuning Advisor」這個工具圖示,如下圖:



分析過程


接著,會出現待設定的視窗,如你可選擇想分析的資料庫,這裡我們使用預設,先不做任何修改。我們點選左側的綠色箭頭「開始分析」,開始分析這段語法如何增進執行效能。如下圖:


可以看到系統正在處理中如下圖:



產生可增進效能的SQL Script


分析結束後,我們點選結果頁中的「建議」這個頁籤,並且在索引建議的資料內,點開定義欄位下的那段建議的連結如下圖紅框處。如下圖:


系統接著出現一個小視窗「SQL指令碼預覽」如下圖紅框處,可將其中的語法copy下來,實際執行它,產生必要的Index,則可為我們增加最先前那段SQL語法的執行效能。在「建議」這個頁籤下方,我們可看到估計可改進約25%的效能,如下圖:



當然,增加Index也意味著資料儲存空間成本的增加,「網站效率提升」與「儲存空間成本的增加」兩者之間如何取捨,讀者可自行根據您系統上的要求的重點來加以考量。

沒有留言:

張貼留言