| 類別 | 典型事件 | 用途 |
| 效能 | sql_statement_completed, sp_statement_completed, sql_batch_completed | 耗時、CPU、IO、行數 |
| 等待 | wait_info, wait_completed | 資源等待分析 |
| 錯誤 | error_reported | 嚴重度 >= 17 自動捕獲 |
| 死結 | xml_deadlock_report | 死結圖形化分析 |
| 安全 | login, logout, audit_login_failed | 登入審計 |
4. 全域欄位 (Global Fields)
每個事件自動附加的上下文資訊,建議勾選:
client_app_name, client_hostname, database_name, username, sql_text (或 tsql_stack), session_id, transaction_id。
5. 事件篩選器 (Predicate) —— 關鍵降低 Overhead
常用比較運算子:=, !=, >, <, >=, <=, LIKE, NOT LIKE。
範例:
sqlserver.database_name = N'MyDB' (僅捕獲特定資料庫)。
sqlserver.duration > 1000000 (僅捕獲 > 1秒 的語句,單位 微秒)。
sqlserver.username LIKE N'APP_%' (僅應用帳號)。
sqlserver.is_system = 0 (排除系統背景工作)。
6. 目標設定
- event_file (最常用):指定路徑
C:\XE\LongRunningQueries.xel,max_file_size=100MB, max_rollover_files=20。
- ring_buffer:記憶體環狀緩衝,適合極短期、極高頻率捕獲 (重啟遺失)。
- event_counter:僅統計事件計數,不儲存詳細資料。
- pair_matching:配對開始/結束事件 (如
lock_acquired/released)。
建立後管理
- Sessions 清單右鍵會話:Start/Stop, Script Session as CREATE (產生 T-SQL 部署腳本), Export/Import (跨實例複製), Properties (修改)。
- 上一篇文章: SQL Server 2012 擴展事件 實戰進階:Workload 捕獲與事件檔案分析 (下)
- 下一篇文章: SQL Server Key Hash Value 深度解析 (下):鎖定資源的核心機制、版本差異與 %%lockres%%
Copyright ©
程式碼之家 All Rights Reserved