擴充事件引擎

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體

擴充事件引擎是執行以下作業之服務與物件的集合:

  • 啟用事件的定義
  • 啟用事件資料的處理
  • 管理系統中擴充的事件服務和物件
  • 維護擴充事件工作階段清單及管理對此清單的存取

擴充事件引擎本身並未提供當事件引發時所要採取的任何事件或動作。 使用擴充之事件引擎的程序會定義與該引擎之間的互動。 這些程序會加入事件點,並提供為了回應事件引發所要採取的動作。

下圖顯示擴充的事件工作階段的簡化檢視。 如需詳細資訊,請參閱擴充事件工作階段

Diagram showing the detailed Extended Events architecture.

  • 每個 Windows 處理序可有一個或多個模組 (Win32 processWin32 module),也稱為二進位檔可執行模組
  • 每個 Windows 處理序模組都可包含一個或多個擴充事件封裝 (Package),其中包含一或多個擴充事件物件 (TypeTargetActionMapPredicateEvent)。
  • 在主機處理序內,只能有一個擴充的事件引擎執行個體 (Extended event engine),此執行個體會執行以下作業:
    • 管理此工作階段的某些層面 (例如,列舉工作階段)。
    • 處理分派 (Dispatcher),類似於執行緒集區。
    • 處理事件的記憶體緩衝區 (Buffer)。 當緩衝區填滿時,會將緩衝區分派給目標。
  • 建立工作階段,並且選擇性地將事件繫結至工作階段 (Session context) 之後:
    • 也可能會建立目標的執行個體 (Target instance),並將其加入工作階段。
    • 當緩衝區填滿時,會將這些緩衝區分派給目標。