イベント通知と SQL トレースについて

次の表では、サーバー イベントを監視する場合のイベント通知と SQL トレースの使用を比較します。

SQL トレース イベント通知

SQL トレースでは、トランザクションに関連したパフォーマンス上のオーバーヘッドは生じません。データのパッケージ化が効率的に行われます。

XML 形式のイベント データの作成やイベント通知の送信に関連して、パフォーマンス上のオーバーヘッドが生じます。

SQL トレースは、どのトレース イベント クラスでも監視できます。

イベント通知では、トレース イベント クラスのサブセット、およびすべての DDL (データ定義言語) イベントを監視できます。

トレース イベント内に生成するデータ列をカスタマイズできます。

イベント通知で返される XML 形式のイベント データのスキーマは固定です。

DDL で生成されるトレース イベントは、DDL ステートメントがロールバックされるかどうかにかかわらず、常に生成されます。

対応する DDL ステートメントのイベントがロールバックされると、イベント通知は発生しません。

トレース イベント データの中間フローを管理するには、トレース ファイルやトレース テーブルを設定し、管理する必要があります。

イベント通知データの中間管理は、Service Broker キューを使用して自動的に行われます。

サーバーが再起動されるたびに、トレースを再起動する必要があります。

イベント通知は、登録後サーバー サイクル間で保持され、トランザクション処理されます。

トレースを開始すると、それ以後は起動を制御できません。停止時間とフィルタ時間を使用して、開始時点を指定できます。対応するトレース ファイルにポーリングすることで、トレースにアクセスできます。

イベント通知によって生成されたメッセージを受信するキューに対して WAITFOR ステートメントを使用することで、イベント通知を制御できます。キューにポーリングすることで、イベント通知にアクセスできます。

トレースを作成するために必要最低限の権限は、ALTER TRACE 権限です。対応するコンピュータ上にトレース ファイルを作成する場合にも、権限が必要です。

最低限の権限は、作成するイベント通知の種類によって異なります。詳細については、「CREATE EVENT NOTIFICATION (Transact-SQL)」を参照してください。対応するキューでは、RECEIVE 権限も必要です。

トレースはリモートで受信できます。

イベント通知はリモートで受信できます。

トレース イベントは、システム ストアド プロシージャを使用して実装されます。

イベント通知は、SQL Server データベース エンジンと Service Broker の組み合わせと Transact-SQL ステートメントを使用して実装されます。

プログラムからトレース イベント データにアクセスするには、対応するトレース テーブルへのクエリを実行するか、トレース ファイルを解析するか、または SQL Server 管理オブジェクト (SMO) TraceReader クラスを使用します。

プログラムからイベント データにアクセスするには、XML 形式のイベント データに対して XQuery を発行するか、SMO イベント クラスを使用します。

参照

概念

イベント通知について

その他の技術情報

イベント通知 (データベース エンジン)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手