sql server 性能分析工具

參考文獻

Monitoring with SQL Profiler

ReadTrace

在sql server中有一個profiler的工具用於追蹤sql server的執行過程,可以監控sql server的的所有過程。假如我們使用SSMS來操作sql server,那麼在profiler中反映的就是ssms這個圖形界面所對應的命令。我們在troubleshooting的時候一般都要求客戶抓取這個profiler最終的trace文件,該文件名後綴是.trc。但是我們得到的這個trace文件可能很大,往往有幾萬甚至幾十萬條記錄,那麼我們如何來分析這個trace呢?這個時候我們就需要引入一些工具,在這裏我們用到的是ReadTrace工具,他的下載地址是:RML Utilities for SQL Server

安裝完畢後,在\Program Files\Microsoft Corporation\RMLUtils\目錄下,會有兩個小工具叫ReadTrace.exe跟Reporter.exe。假如要分析在'D:\sqltrace\input\sp_trace.trc'裏的Trace文件,輸出也產生在'D:\sqltrace\output'下,命令可以是:

D:\Program Files\Microsoft Corporation\RMLUtils>ReadTrace -I"D:\sqltrace\input\sp_trace.trc" -o"D:\sqltrace\output" -f

注意,這裏的參數是區分大小寫的。還有一個需要注意到就是輸出文件的目錄不能跟輸入文件是在同一個目錄下面,不然會報錯,所以我這裏用input和output區分開來。在執行完上面的操作以後,會自動在sql server中創建一個叫做PerfAnalysis的數據庫。然後我們點擊前面提到的Reporter.exe,就可以查看報告了。

常用的統計有以下三項:

  1. 報表工具會根據trace記錄裏的開始時間、結束時間、CPUReadsWritesDuration等,按時間段做統計,畫出一張圖來。能幫助管理員瞭解在不同時間段SQL Server的繁忙程度。
  2. 按程序(Application Name)、數據庫(Database Id)、用戶名(Login Name)排序,找出造成最大SQL工作量的程序/數據庫/用戶。
  3. 按照同一類型的語句,統計最昂貴的語句。在unique batch和unique statement中

SQL Nexus

 http://sqlnexus.codeplex.com/

PSSDIAG Data Collection Utility

微軟對PSSDIAG的介紹如下:

PSSDIAG is a general purpose diagnostic collection utility that Microsoft Product Support Services uses to collect various logs and data files. PSSDIAG can natively collect Performance Monitor logs, SQL Profiler traces, SQL Server blocking script output, Windows Event Logs, and SQLDIAG output.

PSSDIAG有兩個版本,一個版本支持sql server 7.0和sql server 2000,現在最新的版本支持sql server 2005與sql server 2008,但是不知道對sql server 2012的支持如何。本文以sql server 2008 R2爲例進行介紹。在安裝完PSSDIAG以後,我們打開DiagConfig.exe這個文件進行配置我們需要抓取的trace。可以配置的項很多,但是默認已經幫我們選擇了許多,在我們不是很清楚如何配置的時候,我們可以按默認配置來抓取trace。PSSDIAG的配置界面如下圖所示:

在最底下我們可以看到如下描述:

Select the diagnostics you want to collect and click the Save button to save your configuration. During the Save process, a .CAB file is created that can then be used for collecting diagnostic data after extracting the contents. This package will contain the configuration file you’ve just created as well as the scripts, utilities, and other files necessary to collect the diagnostic data that you need to modify.

這就是說在我們配置完需要抓取的內容以後,我們點擊左上角的SAVE按鈕,此時會詢問我們配置文件保存在哪裏,如下圖所示:

我們可以看到,配置文件被保存在了build文件下,而又一個cab文件被保存在了customer文件夾下面。這是因爲我們如果讓客戶抓取trace,我們不需要將整個Pssdiag安裝文件發給客戶,只需要將pssd.cab這個文件法送給客戶,讓客戶自己解壓,然後運行其中的pssdiag.cmd就可以了。之星pssdiag.cmd的界面如下圖所示:

在執行完上面批處理命令以後,我們在Pssdiag\Customer\pssd目錄下會看到一個output文件夾,我們只需要讓客戶將這個output文件夾打包發送給我們就可以了。output文件夾中主要文件有如下圖所示:

sqldiag.blg使用performance monitor打開,.trc文件使用sql profiler打開。

 

 

 本文轉自xwdreamer博客園博客,原文鏈接:http://www.cnblogs.com/xwdreamer/archive/2012/08/28/2660151.html,如需轉載請自行聯繫原作者