首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2012 擴展事件 入門指南:GUI 建立會話、模板選擇、事件篩選與目標設定 (上)

     編輯:關於SqlServer

SQL Server 2012 在 SSMS 完整整合 Extended Events (XE) 圖形化管理,取代舊版 Profiler/Trace。本文手把手教學:從 SSMS 建立會話、選擇模板、挑選事件、設定全域欄位、配置 Predicate 篩選、指定事件檔案目標。

開啟 XE 管理介面

  1. SSMS 連線實例 → Object Explorer → Management → Extended Events → Sessions。
  2. 右鍵 Sessions → New Session Wizard (精靈) 或 New Session (進階視窗)。
SSMS XE 節點 右鍵選單

精靈步驟詳解

1. 會話屬性

  • Name: LongRunningQueries、DeadlockMonitor 等具體命名。
  • Start automatically at server startup:生產環境建議勾選。
  • Track causality:啟用跨事件關聯追蹤 (附加 attach_activity_id),便於串聯完整請求鏈路。

2. 選擇模板

  • No Template:從零建立。
  • Query Detail Sampling:捕獲語句開始/完成、等待統計、執行計畫 XML (高 overhead,僅短期診斷)。
  • Deadlock Analysis:預設捕獲 xml_deadlock_report。
模板選擇頁面

3. 選擇事件 (核心步驟)

常用事件分類:

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 (修改)。
會話右鍵選單
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
類別典型事件用途
效能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登入審計