SQL Server Profiler
SQL Server Profiler は、トレースを作成および管理し、トレースの結果を分析および再生するために使用する機能の豊富なインターフェイスです。 キャプチャされたイベントはトレース ファイルに保存され、後で分析したり、問題の発生したステップを厳密に再現して診断する際に利用できます。
重要 |
---|
データベース エンジンのトレース キャプチャおよびトレース再生用の SQL Server Profiler は廃止されます。 これらの機能は SQL Server の次のバージョンではサポートされますが、その後のバージョンでは削除されます。 SQL Server のどのバージョンであるかは決定していません。 Microsoft SQL Server の Trace オブジェクトや Replay オブジェクトを含む Microsoft.SqlServer.Management.Trace 名前空間も廃止される予定です。 Analysis Services のワークロード用の SQL Server Profiler は廃止されず、引き続きサポートされます。 以下の表に、SQL Server 2012 でトレース データのキャプチャおよび再生を行うために使用が推奨される機能を示します。 |
機能\対象のワークロード |
リレーショナル エンジン |
Analysis Services |
トレースのキャプチャ |
SQL Server Management Studio の拡張イベントのグラフィカル ユーザー インターフェイス |
SQL Server Profiler |
トレースの再生 |
Distributed Replay |
SQL Server Profiler |
SQL Server Profiler の利点
Microsoft SQL Server Profiler は、データベース エンジンまたは Analysis Services のインスタンスを監視するための SQL トレースのグラフィカル ユーザー インターフェイスです。 各イベントに関するデータをキャプチャし、ファイルやテーブルに保存して、後で分析できます。 たとえば、稼動環境を監視して、どのストアド プロシージャの実行が遅く、パフォーマンスに影響を与えているかを確認できます。SQL Server Profiler を使用して、以下のような操作を行うことができます。
問題の原因を特定するため、問題の発生したクエリを順次実行する。
実行速度の遅いクエリを検出し、その原因を診断する。
問題の原因となる一連の Transact-SQL ステートメントをキャプチャする。 トレース ファイルに保存された内容をテスト サーバー上にレプリケートし、問題の診断に利用できます。
ワークロードを調整するため、SQL Server のパフォーマンスを監視する。 データベース ワークロードに関してデータベースの物理設計を調整する方法については、「データベース エンジン チューニング アドバイザー」を参照してください。
問題を診断するために、さまざまなパフォーマンス カウンターの関連を調べる。
SQL Server Profiler では、SQL Server インスタンスで実行された操作の監査もサポートしています。 監査では、後でセキュリティ管理者が調査できるように、セキュリティ関連の操作を記録します。
SQL Server Profiler の概念
SQL Server Profilerを使用するには、ツールがどのように機能するのかを説明する用語を理解しておく必要があります。
注 |
---|
SQL Server Profiler を使用するときは、SQL トレースを理解しておくと役に立ちます。 詳細については、「SQL トレース」を参照してください。 |
イベント
イベントとは、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 のユーザー名を特定のユーザーに限定して出力データを絞り込むことができます。フィルターが設定されていない場合は、選択したイベント クラスのすべてのイベントがトレースに出力されます。
SQL Server Profiler のタスク
タスクの説明 |
トピック |
---|---|
特定の種類のイベントを監視することを目的として SQL Server に備わっている定義済みのテンプレートと、トレースを再生するために必要な権限を紹介します。 |
|
SQL Server Profiler を実行する方法について説明します。 |
|
トレースの作成方法について説明します。 |
|
トレース ファイルに含めるイベントおよびデータ列を指定する方法について説明します。 |
|
トレース結果をファイルに保存する方法について説明します。 |
|
トレース結果をテーブルに保存する方法について説明します。 |
|
トレース内のイベントをフィルター処理する方法について説明します。 |
|
フィルター情報を表示する方法について説明します。 |
|
フィルターを変更する方法について説明します。 |
|
トレース ファイルの最大ファイル サイズを設定する方法について説明します (SQL Server Profiler)。 |
|
トレース テーブルの最大テーブル サイズを設定する方法について説明します。 |
|
トレースの開始方法について説明します。 |
|
サーバーへの接続後、トレースを自動的に開始する方法について説明します。 |
|
イベントの開始時刻に基づいてイベントをフィルター選択する方法について説明します。 |
|
イベントの終了時刻に基づいてイベントをフィルター選択する方法について説明します。 |
|
トレース内のサーバー プロセス ID (SPID) をフィルター選択する方法について説明します。 |
|
トレースを一時停止する方法について説明します。 |
|
トレースを停止する方法について説明します。 |
|
一時停止後または停止後にトレースを実行する方法について説明します。 |
|
トレース ウィンドウをクリアする方法について説明します。 |
|
トレース ウィンドウを閉じる方法について説明します。 |
|
トレース定義の既定値を設定する方法について説明します。 |
|
トレース表示の既定値を設定する方法について説明します。 |
|
トレース ファイルを開く方法について説明します。 |
|
トレース テーブルを開く方法について説明します。 |
|
トレース テーブルを再生する方法について説明します。 |
|
トレース ファイルを再生する方法について説明します。 |
|
一度に単一のイベントを再生する方法について説明します。 |
|
ブレークポイントまで再生する方法について説明します。 |
|
カーソルまで再生する方法について説明します。 |
|
Transact-SQL スクリプトを再生する方法について説明します。 |
|
トレース テンプレートの作成方法について説明します。 |
|
トレース テンプレートの変更方法について説明します。 |
|
グローバル トレース オプションを設定する方法について説明します。 |
|
トレース中に値列またはデータ列を検索する方法について説明します。 |
|
実行中のトレースからテンプレートを作成する方法について説明します。 |
|
トレース ファイルまたはトレース テーブルからテンプレートを作成する方法について説明します。 |
|
トレースを実行するための Transact-SQL スクリプトを作成する方法について説明します。 |
|
トレース テンプレートをエクスポートする方法について説明します。 |
|
トレース テンプレートをインポートする方法について説明します。 |
|
スクリプトをトレースから抽出する方法について説明します。 |
|
トレースと Windows パフォーマンス ログ データを相互に関連付ける方法について説明します。 |
|
トレースに表示される列を構成する方法について説明します。 |
|
SQL Server Profiler を起動する方法について説明します。 |
|
トレースとトレース テンプレートを保存する方法について説明します。 |
|
トレース テンプレートの変更方法について説明します。 |
|
トレースと Windows パフォーマンス ログ データを相互に関連付ける方法について説明します。 |
|
SQL Server Profiler を使用したトレースの表示と分析の方法について説明します。 |
|
SQL Server Profiler を使用してデッドロックを分析する方法について説明します。 |
|
SQL Server Profiler での SHOWPLAN 結果を使用してクエリを分析する方法について説明します。 |
|
SQL Server Profiler でトレースにフィルターを適用する方法について説明します。 |
|
SQL Server Profiler の再生機能の使用方法について説明します。 |
|
SQL Server Profiler の状況依存ヘルプ トピックについて紹介します。 |
|
SQL Server Profiler でパフォーマンスと利用状況を監視する際に使用される一連のシステム ストアド プロシージャを紹介します。 |