參考文獻
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,就可以查看報告了。
常用的統計有以下三項:
- 報表工具會根據trace記錄裡的開始時間、結束時間、CPU、Reads、Writes、Duration等,按時間段做統計,畫出一張圖來。能協助管理員瞭解在不同時間段SQL Server的繁忙程度。
- 按程式(Application Name)、資料庫(Database Id)、使用者名稱(Login Name)排序,找出造成最大SQL工作量的程式/資料庫/使用者。
- 按照同一類型的語句,統計最昂貴的語句。在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開啟。