拡張イベント エンジン

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

拡張イベント エンジンは、次の役割を持った各種のサービスおよびオブジェクトで構成されます。

  • イベントの定義を有効にする。
  • イベント データの処理を有効にする。
  • システム内の拡張イベント サービスとオブジェクトを管理する。
  • 拡張イベント セッションのリストを保持し、そのリストへのアクセスを管理する。

拡張イベント エンジンそのものは、イベントまたはイベント発生時のアクションを一切提供しません。 拡張イベント エンジンとの対話は、エンジンを使用するプロセスによって定義されます。 これらのプロセスによって、イベント ポイントが追加され、イベントの発生時に実行されるアクションが指定されます。

拡張イベント セッションの概略図を次に示します。 詳細については、拡張イベントセッションに関する記事を参照してください。

Diagram showing the detailed Extended Events architecture.

  • 各 Windows プロセスには、バイナリまたは実行可能モジュールとも呼ばれる 1 つ以上のモジュール (Win32 processWin32 module) を含めることができます。
  • Windows プロセスモジュールのそれぞれには、1 つまたは複数の 拡張イベント パッケージ(Package),が含まれており、そのパッケージには、1 つまたは複数の 拡張イベント オブジェクト ( (Type, Target, Action, Map, Predicate, および Event) が含まれています。
  • ホスト プロセス内に存在できる拡張イベント エンジン (Extended event engine) のインスタンスは 1 つだけです。拡張イベント エンジンのインスタンスは次の処理を実行します。
    • セッション関連の処理を管理する (セッションの列挙など)。
    • スレッド プールと同様にディスパッチ (Dispatcher) を処理します。
    • イベントのメモリ バッファー (Buffer) を処理する。 バッファーがいっぱいになると、そのバッファーがターゲットにディスパッチされます。
  • セッションが作成された後、イベントは必要に応じてセッション (Session context)にバインドされます。
    • 場合によっては、ターゲットのインスタンス (Target instance) も作成されてセッションに追加されます。
    • バッファーがいっぱいになると、そのバッファーがターゲットにディスパッチされます。