SQL性能分析工具


考慮到處理數據一定要結合數據庫自身實際,此篇就先從常用的輔助性能分析工具說起,SQL Server Profiler,性能計數器,執行計划,SQL Prompt等工具,也許平時都正在應用,下邊結合自身使用進行介紹。

SQL Server Profiler

    SQL Server提供的監控工具,在運行命令中輸入“profiler”,也可以打開。此工具重點是監控在指定服務器上執行的SQL語句,存儲過程等一切數據庫的操作。對於分析數據庫語句執行,死鎖,性能瓶頸具有很好的作用。

    打開SQL Server Profiler后,是一個空框架,我們需要添加對應的跟蹤(Trace),打開文件中的新建跟蹤,則彈出服務器連接信息,此監控支持本地或服務器遠程監控,輸入對應的身份驗證信息后,點擊連接則打開“跟蹤屬性”設置界面,此處是本節要說的重點,好多都是直接點擊"運行”,發現監控的內容忽忽閃,剛選定一行,一會又出來很多看不懂得東西,其實這就是缺少跟蹤屬性的有效設置,對於一個在服務器上運行的Trace,它監控的是好多數據庫,好多連接,如果不有效的鎖定要查看的對象,那幾乎就是在刷屏。另外打開Trace會消耗服務器性能,建議慎重操作。

下邊說跟蹤屬性設置的幾個點吧,個人觀點哦:

1、常規選項卡中,使用模塊: Starndard(默認值),選擇它就可以,無需更改

2、打開事件選擇選項卡,一般來講我們打開監控都是有原因的,可能是想查看一個存儲過程的執行,可能是T-SQL等等,根據實際鎖定目標即可,不用的都可以不選取,這樣Trace對這類執行直接Pass,比如我們只看存儲過程,則抓圖如下:

    這樣Trace值跟蹤存儲過程的執行了,這還是有些不太滿足要求,此時可以考慮添加列篩選,點擊“列篩選器”,進行設置,當然我一般只做如下篩選,你可以結合自己的實際進行設置篩選條件,設置LoginName根據你查詢的登錄名,比如sa,設置Duration持續時間,大於等於2000(單位毫秒),這樣就可以把大數據量的查詢和性能較慢的給羅列出來包括CPU使用情況,Read,Write等參數,然后再分析對應的語句,找出問題所在,使用此工具可以快速鎖定目標進行分析。

性能計數器

     監控數據庫的性能此工具也是必不可少,可以有效的監控機器的使用情況。通過SQL Server Profiler工具中的性能監視器進行打開,或者在運行命令中,輸入perfmon進行打開。此工具只能查看本機的性能情況,無法監控遠程機器。通過性能監控器可以查看當前時間點機器的各項使用指標包括CPU,IO,內存等等分析相關參數,找到是硬件配置過差,還是機器性能沒有得到充分的發揮,找到問題的確切原因,然后才能進行對應的優化。

在性能計數器中,默認機器上有很多計數器,此處重點需要添加如下幾個進行觀測:

1、添加計數器,在菜單上,或右鍵打開,如下圖,選擇添加計數器

2、選擇你所關注的計數器:

  a、SQLServer:Buffer Manager計數器 ,在里邊的參數中重點關注Buffer cache hit ratio,page life expectancy選中后,點擊添加,確定后就能看到實時的檢測

  b、Memory計數器,關注page reads/sec, pages/sec等

具體參數和對應數值代表什么意思,可以查看官方的解釋,很全面。

通過計數器的實時檢測,可以快捷的分析問題的所在,比如內存持續走高,cpu使用包含,緩存無效等等。找到問題對應的優化,該添加硬件添加硬件,該優化代碼優化代碼。

執行計划

這個很簡單了,在SQL Server Studio中直接“查詢”菜單下,選擇顯示執行計划即可,每次的執行就可以看出來,執行計划詳細的羅列出來每次執行的cpu使用,消耗時間,邏輯讀,物理讀等參數,分析對應的數據記錄進行優化即可,顯示執行計划不難,難在如何對顯示結果看明白,然后找到問題所在進行優化,相關的過程需要深入查看對應的內容。

SQL Prompt 4

Sql Server一個很不錯的插件,值得推薦,通過它在2005及其之前的版本書寫語句時會有自動提示,還可以檢查語法,高亮顯示對應關鍵字等,其中部分功能已經被集成在SQL Sersver2008及其以后的版本中,有興趣的可以去下載,書寫對應的sql語句方便不少呀。

抓個圖看看效果吧:

好了,今天就先寫這么多,重點都是一些工具的使用,這些在日常分析問題和尋求解決方法時,很有用的,分享給大家。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM