次の方法で共有


SQL Server 拡張イベント エンジン

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

  • イベントの定義を有効にする。

  • イベント データの処理を有効にする。

  • システム内の拡張イベント サービスとオブジェクトを管理する。

  • 拡張イベント セッションのリストを保持し、そのリストへのアクセスを管理する。

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

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

拡張イベントのアーキテクチャの詳細

次のことを考慮してください。

  • 各 Windows プロセスは、1 つまたは複数のモジュール (Win32 プロセスWin32 モジュール) を持つ場合があります。これらは、バイナリまたは実行可能モジュールと呼ばれる場合もあります。

  • 各 Windows プロセス モジュールには、1 つまたは複数の拡張イベント パッケージ (Package) が含まれる場合があります。拡張イベント パッケージには、1 つまたは複数の拡張イベント オブジェクト (TypeTargetActionMapPredicate、および Event) が含まれます。

  • ホスト プロセス内に存在できる拡張イベント エンジン (Extended event engine) のインスタンスは 1 つだけです。拡張イベント エンジンのインスタンスは次の処理を実行します。

    • セッション関連の処理を管理する (セッションの列挙など)。

    • ディスパッチを処理する (Dispatcher)。これはスレッド プールに似ています。

    • イベントのメモリ バッファ (Buffer) を処理する。バッファがいっぱいになると、そのバッファがターゲットにディスパッチされます。

  • セッションが作成された後、イベントは必要に応じてセッション (Session context) にバインドされます。

    • 場合によっては、ターゲットのインスタンス (Target instance) も作成されてセッションに追加されます。

    • バッファがいっぱいになると、そのバッファがターゲットにディスパッチされます。