性能分析器事件選擇對話框上有大量可供選擇,現介紹工做中最常使用的事件。安全
1. Errors and Warnings: Attention服務器
當用戶意外地同SQL Server斷開鏈接時,通常就會激發該事件。最多見的緣由是客戶庫超時,而一般來講,一個30秒的計時器在提交查詢時便啓動了。若是查詢超時,就當即發現,所以這個事件使用很頻繁。ide
2. Errors and Warnings: Exception 和 Errors and Warnings: User Error Message函數
異常和用戶錯誤信息一塊兒出現,通常都一塊兒跟蹤這兩個類。當出現用戶異常時,這兩個事件就會被激發。異常事件包含錯誤數、嚴重性和狀態,而用戶錯誤信息事件包含錯誤的實際文本。性能
3. Locks: Deadlock graph 和 Locks: Lock:Deadlock Chain優化
在SQL Server以前的版本,死鎖只能經過Deadlock Chain事件識別出來。SQL Server 2005以後引入了更多可用的Deadlock graph事件,這個事件生成標準XML,性能分析器能夠將其呈現爲很是清晰的圖形輸出。ui
4. Locks: Lock:Acquired 、 Locks: Lock:Released 和 Locks: Lock:Escalationspa
主要在解決死鎖的同時使用這些事件,使用戶知道在一個事務期間SQL Server用了什麼鎖,以及這些鎖被保持了多長時間。若是用戶對SQL Server各類隔離級別的運轉感興趣,能夠監視這些事件。使用這些事件時,要確保對特定的目標spid進行過濾,以避免獲得太多的信息而不方便處理。scala
5. Performance: Showplan XML Statistics Profile設計
該事件能夠用來捕獲用戶正在服務器上進行性能分析的查詢過的XML顯示計劃輸出。這裏實際上有一些不一樣的顯示計劃和XML顯示計劃事件類,這一個是最有用的,由於它包含了實際行數及其餘統計數據,而這些有助於優化查詢。
6. Security Audit(事件類別)
儘管這並非一個事件類,但其實是一個包含多個事件類的類別,因爲它包含了許多有用的事件類,而這些事件類有助於監視服務器上出現的幾乎全部安全相關的活動,所以,應當將其加入到這個列表中。它包含了許多信息,例如失敗的登陸嘗試(「Audit Login Failed」事件類),對特定的表或其餘對象的訪問(「Audit Schema Object Access Event」事件類),甚至還有服務器啓動時間(「Audit Server Starts And Stops」事件類)。這些事件類的絕大部分都是爲SQL Server的內置服務器審覈跟蹤而設計的。
7. Security Audit: Audit Login 和 Security Audit: Audit Logout
將這兩個事件從總體的安全審覈類別中挑選出來,由於這兩個事件天天都會用到,尤爲是在作性能調校時十分有用。經過監視這兩個事件及存儲過程和T-SQL類別中的各類查詢事件,用戶能夠更方便地在單個會話的基礎上積聚信息。
提示:得益於SQL Server 2005 SP2中的一個改進,連彙集起來的登陸和登出也能夠出發這些事件,使得它們比之前更加有用。要檢測被激發的事件是否基於一個聚集鏈接,能夠查看EventSubClass列的值是否爲2。
8. Stored Procedures: RPC:Starting 和 Stored Procedures: RPC:Completed
當一個客戶應用程序執行一個遠程過程調用時(RPC:一般是一個帶參數的查詢或存儲過程調用,具體是哪一個取決於使用的鏈接庫),這些事件就會被激發。
9. TSQL: SQL:BatchStarting 和 TSQL: SQL:BatchCompleted
當一個客戶應用程序執行一個ad hoc批處理時,這些事件就會被激發。結合RPC事件類使用這些事件能夠容許用戶捕捉到外部調用程序提交給服務器的全部請求。「SQL:BatchCompleted」事件類和相應的「RPC:Completed」事件類都填充信息至4個關鍵的列:CPU、Reads、Writes和Duration。
10. Stored Procedures: SP:StmtStarting 和 Stored Procedures: SP:StmtCompleted
在一個複雜的充滿了流程控制語句的存儲過程當中,有時很難肯定到底選擇了哪條訪問路徑。每次執行一個存儲過程當中的一條語句時,這些事件就會被激發,爲用戶顯示發生事件的全景。這些事件可能會生成極其大量的數據。所以,最好僅在已通過濾了該跟蹤以後再使用這些事件,這種過濾可經過一個正在跟蹤的給定spid或一個特定的存儲過程名稱或對象ID(相應地使用ObjectName或ObjectId列)來完成。
11. Stored Procedures: SP:Recompile
經過分析認爲存儲過程重編譯意味着一個潛在的SQL Server性能故障。SQL Server包含了一個幫助跟蹤計數器(SQL Server: SQL統計值: SQL重編譯/秒),若是發現該計數器的值居高不下,就能夠考慮使用這個事件類來進行性能分析,以便肯定究竟是哪一個存儲過程引發了故障。
12. Stored Procedures: SP:Starting
每當調用一個存儲過程或函數時,該事件類就會被激發,不管是客戶直接調用仍是被其餘的存儲過程或函數嵌套調用。因爲該事件類不填充信息至讀、寫和CPU列,所以它對性能調校並無太大的用戶,可是也有價值。常用這個類來獲取給定時間間隔內一個特定存儲過程被調用的次數統計,也能夠用在存儲過程嗲用被大量嵌套的狀況下,而且須要明確肯定哪些序列調用致使了執行一個特定的存儲過程。
13. Transactions: SQL Transaction
這個事件能夠用來監視事務的啓動、提交和回滾。經過查看EventSubClass列能夠肯定事務出於何種狀態,0、一、2分別表明事務的啓動、提交和回滾。因爲每次數據修改都會佔用一個事務,所以這個事件可能會在一臺忙碌的服務器上形成大量待返回的數據。若是可能,要確保基於正在跟蹤的一個特定spid來過濾跟蹤。
14. User configurable(事件類別)
該事件類別包含了10個事件,命名從用戶配置:0一直到用戶配置:9。這些事件能夠被有足夠ALTER TRACE訪問權限的用戶或模塊激發,且容許跟蹤用戶數據。