SQL Server Profiler で使用する用語
SQL Server Profiler を使用するには、ツールがどのように機能するのかを説明する用語を理解しておく必要があります。
イベント
イベントとは、SQL Server データベース エンジン のインスタンス内で発生するアクションです。次に例を示します。
- ログインの接続、失敗、および接続解除。
- Transact-SQL SELECT、INSERT、UPDATE、および DELETE ステートメント。
- リモート プロシージャ コール (RPC) のバッチ ステータス。
- ストアド プロシージャの開始または終了。
- ストアド プロシージャ内のステートメントの開始または終了。
- SQL バッチの開始または終了。
- SQL Server のエラー ログに書き込まれたエラー。
- データベース オブジェクトで取得または解放されたロック。
- 開かれたカーソル。
- セキュリティ権限の確認。
イベントによって生成されたデータは、すべてトレースに 1 行で表示されます。この行の各データ列には、イベントの詳しい説明が表示されます。
イベントクラス
イベント クラスは、トレースできるイベントの種類を定義します。イベント クラスには、イベントによって報告できるすべてのデータが含まれています。イベント クラスの例を次に示します。
- SQL:BatchCompleted
- Audit Login
- Audit Logout
- Lock:Acquired
- Lock:Released
イベントカテゴリ
イベント カテゴリは、SQL Server Profiler 内でイベントを分類する方法を定義します。たとえば、ロック イベント クラスはすべて、ロック イベント カテゴリに分類されます。ただし、イベント カテゴリは SQL Server Profiler でしか存在しません。この用語に、エンジン イベントを分類する方法は反映されていません。
データ列
各データ列は、トレースでキャプチャされるイベント クラスの属性です。収集できるデータの種類はイベント クラスによって異なるため、必ずしもすべてのデータ列がすべてのイベント クラスに使用されるわけではありません。たとえば、Lock:Acquired イベント クラスをキャプチャするトレースでは、ロックされたページ ID またはロックされた行の値が BinaryData データ列に格納されますが、Integer Data データ列にはまったく値が格納されません。これは、キャプチャ対象のイベント クラスにこのデータ列が適合しないためです。既定のデータ列の詳細については、「データ列を使用したイベントの説明」を参照してください。
テンプレート
テンプレートは、トレースの既定の構成を定義します。特に、テンプレートには、SQL Server Profiler を使用して監視するイベント クラスを指定します。たとえば、使用するイベント、データ列、およびフィルタを指定するテンプレートを作成できます。テンプレートは、実行するのではなく、.tdf という拡張子を付けてファイルとして保存しておきます。保存したテンプレートは、そのテンプレートに基づいて作成したトレースの実行時にどのようなトレース データをキャプチャするかを制御します。
トレース
トレースでは、選択したイベント、データ列、およびフィルタに基づいたデータをキャプチャします。たとえば、例外エラーを監視するトレースを作成できます。これには、Exception イベント クラスを選択し、そのデータ列である Error、State、および Severity を選択します。トレース結果で意味のあるデータを示すには、これら 3 列のデータを収集する必要があります。このようにして構成されたトレースを実行し、サーバーで発生するすべての Exception イベントに関するデータを収集することができます。トレース データは、保存することも、すぐに分析に使用することもできます。トレースは、後日再生できます。ただし、Exception イベントなど、再生不可能なイベントもあります。また、トレースをテンプレートとして保存しておき、これに似たトレースを後日作成することもできます。
SQL Server では、SQL Server のインスタンスをトレースするために 2 とおりの方法が用意されています。つまり、SQL Server Profiler を使用してトレースする方法と、システム ストアド プロシージャを使用してトレースする方法です。
フィルタ
トレースまたはテンプレートを作成する際には、指定したイベントで収集されたデータをフィルタで選択する基準を定義できます。トレースが大きくなりすぎないようにするためには、イベント データのサブセットだけが収集されるようにフィルタを適用します。たとえば、トレースでキャプチャする Microsoft Windows のユーザー名を特定のユーザーに限定して出力データを絞り込むことができます。
フィルタが設定されていない場合は、選択したイベント クラスのすべてのイベントがトレースに出力されます。