SQL server實戰優化終極武器
數據庫的通病就是在使用一段時間後會出現數據庫查詢緩慢,性能下降,甚至無法正常使用。在這個時候就需要對數據庫進行優化。可是,到底優化什麼?這卻是一個難點。別怕,通過這篇文章,保證讓你對數據庫優化能力有一個質的提高。
大家都知道,對數據庫優化最主要的就是對數據庫的查詢進行優化。可是用於查詢的SQL語句那麼多,到底應該優化哪一條或幾條呢?這就需要藉助我們的終極武器——“SQL Server profiler”SQL分析器來準確查找了。
如何使用SQL分析器捕捉到需要優化的語句呢,請看下面詳細介紹。
SQL Server profiler是SQL Server安裝自帶的。它可以在SQL Server 的性能工具中找到。
想要準確的撲捉到需要優化的SQL語句僅僅使用SQL分析器還是不夠的,還需要藉助“性能監視器”的力量。
有了這兩樣東西,“SQL優化大師”之路就可以開啓了。(開開玩笑,離真正的大師還遠着呢)
1 首先打開SQL Server分析器和性能監視器。
2 在性能監視器的“計數器日誌”中新建一個計數器
3 輸入日誌名稱後進入到設置界面。單擊“添加計數器”按鈕。
4 選擇需要監測的項目。SQL主要需要監測的無非就是內存,CPU。在這裏可以根據具體的實際情況選擇監測對象。
如果實在不知道該選擇哪些,可以在這裏選擇“添加對象”
將CPU,內存的所有項目都監視起來。
這樣 一個計數器日誌就創建完成了。
5 然後開啓SQL分析器,新建一個跟蹤。
6 跟蹤屬性可以選擇默認
7 新建好跟蹤後,就開始監視着臺SQL服務器的性能了。如果當前SQL服務器是給一個網站做服務,那麼當別人在訪問這個網站時自然會在SQL服務器中引用大量的SQL語句,只要找到在訪問這個網站是使用什麼SQL語句最耗費資源,就可以針對這一條或幾條SQL語句進行有針對性的優化。SQL服務器的性能自然會提高。(同樣的,只要是應用到數據庫的程序,都可以用這一方法優化數據庫。最顯著的例子就是網絡遊戲的數據庫)
那麼到底要如何找到最耗費資源的SQL語句呢?(因爲這裏是實驗環境,模仿真實的網站或遊戲數據庫有些困難,所以,我僅僅是在SQL控制檯中模仿瀏覽網站點擊引用SQL語句)
下面紅框內就是SQL分析器所監視到的SQL語句的數量。
8 這時將跟蹤文件“另存爲”到桌面。(位置自選,方便記憶)
9 停止SQL分析器和“性能監視器”
10 再以打開“跟蹤文件”的方式打開剛纔保存在桌面的跟蹤文件。
11 選擇“導入性能數據”
12 選擇“性能監視器”的性能監視文件。位置就是設置“計數器日誌”是的位置。(第4步)
13 將這3個計數器全部勾選。按“確定”後出現一個警告,不用理會,按確定
14 在“1”中選擇線條的匯聚點,不用理會下面,只看上面。在“2”中選擇最近的SQL查詢語句(也就是select語句)。將“3”中的SQL 語句複製下來。
15 將複製下來的SQL 語句放在“數據庫引擎優化顧問”中進行分析。
最後將分析結果創建索引,這樣一個實戰中有針對性的數據庫優化項目就做成了。
怎麼樣,這樣有針對性的終極武器夠分量吧。
因爲篇幅問題,如果不會使用“數據庫引擎優化顧問”的可以看看我下一篇博文。專門說明“數據庫引擎優化顧問”的使用方法。在這裏就不贅述了。