トレースにキャプチャされたイベント データを表示するには、 SQL Server プロファイラー を使用します。 SQL Server プロファイラー では、定義されたトレース プロパティに基づいてデータが表示されます。 SQL Server のデータを分析するには、 SQL Server や データベース エンジン チューニング アドバイザーなどの別のプログラムにデータをコピーする方法があります。 データベース エンジン チューニング アドバイザーは、 Text データ列がトレースに含まれている場合、SQL バッチおよびリモート プロシージャ コール (RPC) のイベントを含んだトレース ファイルを使用できます。 データベース エンジン チューニング アドバイザーで使用するために正しいイベントと列が確実にキャプチャされるようにするには、SQL Server Profiler に付属の定義済みのチューニング テンプレートを使用します。
SQL Server Profiler を使用してトレースを開く場合、ファイルが SQL Server Profiler または SQL トレース システム ストアド プロシージャによって作成された場合、トレース ファイルに .trc ファイル拡張子を付ける必要はありません。
注
SQL Server プロファイラー は、SQL トレース .log ファイルと汎用 SQL スクリプト ファイルも読み取ることができます。 ファイル拡張子 .log がない SQL トレース ファイル、たとえば trace.txt を開く場合は、ファイル形式として SQLTrace_Log を指定します。
SQL Server プロファイラー の日付および時刻の表示形式は、トレース分析を行いやすいように設定できます。
データのトラブルシューティング
SQL Server プロファイラーを使用すると、トレースまたはトレース ファイルを Duration、 CPU、 Reads、または Writes の各データ列でグループ化することにより、データをトラブルシューティングできます。 トラブルシューティングできるデータの例としては、実行時間のかかるクエリや、論理読み取り操作の数が例外的に多いクエリなどがあります。
トレースをテーブルに保存し、Transact-SQL を使用してイベント データをクエリすると、追加の情報を検索できます。 たとえば、どの SQL:BatchCompleted イベントの待機時間が長すぎるかを調べるには、次のように実行します。
SELECT TextData, Duration, CPU
FROM trace_table_name
WHERE EventClass = 12 -- SQL:BatchCompleted events
AND CPU < (Duration * 1000)
注
サーバーはマイクロ秒 (100 万分の 1 (10-6) 秒) 単位でのイベント期間、およびイベントにより使用されるミリ秒 (10-3秒) 単位での CPU 時間をレポートします。 SQL Server プロファイラー のグラフィカル ユーザー インターフェイスに、既定ではミリ秒単位で Duration 列が表示されますが、トレースがファイルまたはデータベース テーブルに保存されると、 Duration 列の値はマイクロ秒単位で記述されます。
トレースを確認するときのオブジェクト名の表示
オブジェクトの識別子 (Object ID) でなく名前を表示するには、 Object Name データ列に加えて Server Name と Database ID の各データ列もキャプチャする必要があります。
Object ID データ列でグループ化する場合は、まず Server Name と Database ID の各データ列でグループ化してから、 Object ID データ列でグループ化してください。 同様に、 Index ID データ列でグループ化する場合は、まず Server Name、 Database ID、および Object ID の各データ列でグループ化してから、 Index ID データ列でグループ化してください。 サーバーとデータベース (およびインデックス ID の場合はオブジェクト) の間ではオブジェクト ID とインデックス ID は一意でないので、この順序でグループ化する必要があります。
トレース内での特定のイベントの検索
トレース内のイベントを検索およびグループ化するには、次の手順を実行します。
トレースを作成します。
トレースを定義する場合、キャプチャするその他のデータ列に加え、 Event Class、 ClientProcessID、 Start Time の各データ列もキャプチャします。 詳細については、「トレースの作成 (SQL Server Profiler)」を参照してください。
Event Classデータ列でキャプチャされたデータをグループ化し、トレースをファイルまたはテーブルにキャプチャします。 キャプチャされたデータをグループ化するには、[トレースのプロパティ] ダイアログ ボックスの [イベントの選択] タブで [列の構成] をクリックします。 詳細については、「トレースに表示される列の構成 (SQL Server Profiler)」を参照してください。
トレースを開始して、適切な時間が経過するか、適切な数のイベントがキャプチャされたら、トレースを停止します。
対象のイベントを検索します。
トレース ファイルまたはテーブルを開き、必要なイベント クラスのノード、たとえば Deadlock Chainを展開します。 詳細については、「トレース ファイルを開く (SQL Server Profiler)」または「トレース テーブルを開く (SQL Server Profiler)」を参照してください。
目的のイベントが見つかるまでトレースデータを検索します。トレース内の値を見つける際には、SQL Server プロファイラーの「編集」メニューにある「検索」コマンドを使用すると便利です。 トレースするイベントの ClientProcessID データ列に加えて Start Time データ列の値を書き留めておきます。
コンテキスト内でイベントを表示します。
トレースのプロパティを表示し、ClientProcessID データ列でグループ化し、Event Class データ列ではなく、ClientProcessID データ列によってグループ化します。
表示する各クライアント プロセス ID のノードを展開します。 トレース全体を手動で検索するか、または前の対象イベントの Start Time 値が見つかるまで [検索] オプションを使用します。 選択した各クライアント プロセス ID に属するその他のイベントと共に、イベントは発生順に表示されます。 たとえば、トレース内でキャプチャされたDeadlockイベントおよびDeadlock Chainイベントは、展開されたクライアント プロセス ID 内でSQL:BatchStartingイベントの直後に現れます。
これと同じ方法で、グループ化されたイベントを見つけることができます。 目的のイベントが見つかったら、 ClientProcessID、 ApplicationName、その他のイベント クラスでイベントをグループ化すると、関連する動作を発生順に表示できます。
こちらもご覧ください
保存されているトレースの表示 (Transact-SQL)
sys.fn_trace_getinfo (Transact-SQL)
フィルター情報の表示 (SQL Server Profiler)
フィルター情報の表示 (Transact-SQL)
トレース ファイルを開く (SQL Server Profiler)
トレース テーブルを開く (SQL Server Profiler)