19.2.1 了解SQL Server Profiler
SQL Server Profiler 是圖形化實時監視工具,能幫助系統管理員監視數據庫和服務器的行為, 比如死鎖的數量,致命的錯誤,跟蹤Transact-SQL 語句和存儲過程。可以把這些監視數據存入表或文件中,並在以後某一時間重新顯示這些事件來一步一步地進行分析。
通常我們使用SQL Server Profiler 僅監視某些插入事件,這些事件主要有: 登錄連接的失敗、成功或斷開連接; DELETE、 INSERT、 UPDATE 命令; 遠程存儲過程調用(RPC) 的狀態; 存儲過程的開始或結束,以及存儲過程中的每一條語句; 寫入SQL Server 錯誤日志的錯誤; 打開的游標; 向數據庫對象添加鎖或釋放鎖。 我們之所以不監視過多的事件,原因在於對事件進行監視往往增加系統的負擔,並且使跟蹤文件很快增長成大容量文件,從而引起不必要的麻煩。
19.2.2 創建跟蹤
在SQL Server 中可以使用SQL Server Profiler 創建跟蹤,也可以使用跟蹤創建向導或是擴展存儲過程。在這裡我們將介紹如何使用SQL Server Profiler 來創建跟蹤。
(1) 啟動SQL Server Profiler (與啟動SQL Server Enterprise Manager 一樣),從File 的下拉菜單中選擇New, 再選擇Trace 選項,此時打開Trace Properties 對話框,如圖19-2 所示。
在該對話框中定義跟蹤的名稱、類型、運行跟蹤的SQL Server 以及跟蹤輸出數據的存儲方式。其中各選項的含義為: Shared: 表示所有被允許登錄到運行SQL Server Profiler 服務器的用戶都可以使用該跟蹤; Private: 表示只有當前創建者可以使用該跟蹤; Capture to file: 表示將跟蹤結果存儲到文件中,可減少進行跟蹤時的內存開銷; Capture to table: 表示將跟蹤結果存儲到表中,這極易引起較大的額外系統開銷。
(2) 選中Events 標簽頁,如圖19-3 所示該對話框用來確定將跟蹤哪些事件。在 Available Events 下的窗口中選擇要跟蹤的事件,底部的方框內便顯示出該事件的含義,單擊Add ,增加到Selected Events 事件中;
(3) 選中Data Columns 標簽頁,如圖19-4 所示。在該對話框可以選擇跟蹤事件哪些數據列,通常選擇那些我們比較關心的列。
(4) 選中Filters 標簽頁,如圖19-5 所示。
(5) 單擊“確定”按鈕完成跟蹤創建。
19.2.3 查看、分析跟蹤
使用SQL Server Profiler 可以查看跟蹤中的事件數據,在跟蹤中的每一行代表一個事件,這些事件數據是由跟蹤的屬性決定的。可以把SQL Server 數據拷貝到其它的應用程序中,如SQL Server Query Analyzer 或Index Tuning Wizard 然後利用它們進行數據分析,但通常我們使用SQL Server Profiler 來進行跟蹤分析。
利用SQL Server Profiler 既可以打開擴展名為.trc 的跟蹤文件,也可以打開擴展名為.log 的日志文件,以及一般的SQL 腳本文件
因為跟蹤信息通常保存在文件或表中,所以通過打開表或文件就可以查看、分析跟蹤。
打開跟蹤的步驟為:
從File 菜單中選擇Open, 再選擇Trace Files, 彈出如圖19-6 所示的對話框。