SQL Server Profiler を使用したトレースの表示と分析View and Analyze Traces with SQL Server Profiler

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

トレースにキャプチャされたイベント データを表示するには、 SQL Server プロファイラーSQL Server Profiler を使用します。Use SQL Server プロファイラーSQL Server Profiler to view captured event data in a trace. SQL Server プロファイラーSQL Server Profiler では、定義されたトレース プロパティに基づいてデータが表示されます。displays data based on defined trace properties. SQL ServerSQL Server のデータを分析するには、 SQL ServerSQL Serverデータベース エンジンDatabase Engine チューニング アドバイザーなどの別のプログラムにデータをコピーする方法があります。One way to analyze SQL ServerSQL Server data is to copy the data to another program, such as SQL ServerSQL Server or データベース エンジンDatabase Engine Tuning Advisor. データベース エンジンDatabase Engine チューニング アドバイザーは、 Text データ列がトレースに含まれている場合、SQL バッチおよびリモート プロシージャ コール (RPC) のイベントを含んだトレース ファイルを使用できます。Tuning Advisor can use a trace file that contains SQL batch and remote procedure call (RPC) events if the Text data column is included in the trace. データベース エンジンDatabase Engine チューニング アドバイザーで使用する適切なイベントと列がキャプチャされるようにするには、 SQL Server プロファイラーSQL Server Profilerに付属の定義済みチューニング テンプレートを使用します。To make sure that the correct events and columns are captured for use with データベース エンジンDatabase Engine Tuning Advisor, use the predefined Tuning template that is supplied with SQL Server プロファイラーSQL Server Profiler.

SQL Server プロファイラーSQL Server Profilerを使用してトレースを開くとき、そのトレース ファイルが SQL Server プロファイラーSQL Server Profiler または SQL トレース システムのストアド プロシージャによって作成されている場合は、トレース ファイルに .trc というファイル拡張子が付いている必要はありません。When you open a trace by using SQL Server プロファイラーSQL Server Profiler, the trace file does not need to have the .trc file extension if the file was created by either SQL Server プロファイラーSQL Server Profiler or SQL Trace system stored procedures.


SQL Server プロファイラーSQL Server Profiler は、SQL トレース ファイル (.log) と汎用 SQL スクリプト ファイルも読み取ることができます。can also read SQL Trace .log files and generic SQL script files. ファイル拡張子 .log がない SQL トレース ファイル、たとえば trace.txt を開く場合は、ファイル形式として SQLTrace_Log を指定します。When opening a SQL Trace .log file that does not have a .log file extension, such as trace.txt, specify SQLTrace_Log as the file format.

SQL Server プロファイラーSQL Server Profiler の日付および時刻の表示形式は、トレース分析を行いやすいように設定できます。You can configure the SQL Server プロファイラーSQL Server Profiler date and time display format to assist in trace analysis.

データのトラブルシューティングTroubleshooting Data

SQL Server プロファイラーSQL Server Profilerを使用すると、トレースまたはトレース ファイルを DurationCPUReads、または Writes の各データ列でグループ化することにより、データをトラブルシューティングできます。Using SQL Server プロファイラーSQL Server Profiler, you can troubleshoot data by grouping traces or trace files by the Duration, CPU, Reads, or Writes data columns. トラブルシューティングできるデータの例としては、実行時間のかかるクエリや、論理読み取り操作の数が例外的に多いクエリなどがあります。Examples of data you might troubleshoot are queries that perform poorly or that have exceptionally high numbers of logical read operations.

さらに、トレースをテーブルに保存し、 Transact-SQLTransact-SQL を使用してイベント データをクエリすることにより、追加の情報を検索できます。Additional information can be found by saving traces to tables and using Transact-SQLTransact-SQL to query the event data. たとえば、どの SQL:BatchCompleted イベントの待機時間が長すぎるかを調べるには、次のように実行します。For example, to determine which SQL:BatchCompleted events had excessive wait time, execute the following:

SELECT  TextData, Duration, CPU  
FROM    trace_table_name  
WHERE   EventClass = 12 -- SQL:BatchCompleted events  
AND     CPU < (Duration * 1000)  


サーバーはマイクロ秒 (10^-6 秒) 単位でのイベント期間、およびイベントにより使用されるミリ秒 (10^-3 秒) 単位での CPU 時間をレポートします。The server reports the duration of an event in microseconds (10^-6 seconds) and the amount of CPU time used by the event in milliseconds (10^-3 seconds). SQL Server プロファイラーSQL Server Profiler のグラフィカル ユーザー インターフェイスに、既定ではミリ秒単位で Duration 列が表示されますが、トレースがファイルまたはデータベース テーブルに保存されると、 Duration 列の値はマイクロ秒単位で記述されます。The SQL Server プロファイラーSQL Server Profiler graphical user interface displays the Duration column in milliseconds by default, but when a trace is saved to either a file or a database table, the Duration column value is written in microseconds.

トレースを確認するときのオブジェクト名の表示Displaying Object Names When Viewing Traces

オブジェクトの識別子 (Object ID) でなく名前を表示するには、 Object Name データ列に加えて Server NameDatabase ID の各データ列もキャプチャする必要があります。If you wish to display the name of an object rather than the object identifier (Object ID), you must capture the Server Name and Database ID data columns along with the Object Name data column.

Object ID データ列でグループ化する場合は、まず Server NameDatabase ID の各データ列でグループ化してから、 Object ID データ列でグループ化してください。If you choose to group by the Object ID data column, make sure you group by the Server Name and Database ID data columns first, and then by the Object ID data column. 同様に、 Index ID データ列でグループ化する場合は、まず Server NameDatabase ID、および Object ID の各データ列でグループ化してから、 Index ID データ列でグループ化してください。Similarly, if you choose to group by the Index ID data column, make sure you group by the Server Name, Database ID, and Object ID data columns first, and then by the Index ID data columns. サーバーとデータベース (およびインデックス ID の場合はオブジェクト) の間ではオブジェクト ID とインデックス ID は一意でないので、この順序でグループ化する必要があります。You must group in this order because object and index IDs are not unique among servers and databases (and among objects for index IDs).

トレース内での特定のイベントの検索Finding Specific Events Within a Trace

トレース内のイベントを検索およびグループ化するには、次の手順を実行します。To find and group events in a trace, follow these steps:

  1. トレースを作成します。Create your trace.

    • トレースを定義する場合、キャプチャするその他のデータ列に加え、 Event ClassClientProcessIDStart Time の各データ列もキャプチャします。When defining the trace, capture the Event Class, ClientProcessID, and Start Time data columns in addition to any other data columns you want to capture. 詳細については、「トレースの作成 (SQL Server Profiler)」を参照してください。For more information, see Create a Trace (SQL Server Profiler).

    • Event Class データ列でキャプチャされたデータをグループ化し、トレースをファイルまたはテーブルにキャプチャします。Group the captured data by the Event Classdata column, and capture the trace to a file or table. キャプチャされたデータをグループ化するには、[トレースのプロパティ] ダイアログ ボックスの [イベントの選択] タブで [列の構成] をクリックします。To group the captured data, click Organize Columns on the Events Selection tab of the Trace Properties dialog box. 詳細については、「トレースに表示される列の構成 (SQL Server Profiler)」を参照してください。For more information, see Organize Columns Displayed in a Trace (SQL Server Profiler).

    • トレースを開始して、適切な時間が経過するか、適切な数のイベントがキャプチャされたら、トレースを停止します。Start the trace and stop it after the appropriate time has passed or number of events have been captured.

  2. 対象のイベントを検索します。Find the target events.

    • トレース ファイルまたはテーブルを開き、必要なイベント クラスのノード、たとえば Deadlock Chainを展開します。Open the trace file or table, and expand the node of the desired event class; for example, Deadlock Chain. 詳細については、「 トレース ファイルを開く (SQL Server Profiler)トレース テーブルを開く (SQL Server Profiler)に付属の定義済みチューニング テンプレートを使用します。For more information, see Open a Trace File (SQL Server Profiler) or Open a Trace Table (SQL Server Profiler).

    • 目的のイベントが見つかるまで、トレース データ全体を検索します。 [編集] メニューの [検索] SQL Server プロファイラーSQL Server Profiler を使用すると、トレース内の値を検索するときに便利です。Search through the trace data until you find the events for which you are looking (use the Find command on the Edit menu of SQL Server プロファイラーSQL Server Profiler to help you find values in the trace). トレースするイベントの ClientProcessID データ列に加えて Start Time データ列の値を書き留めておきます。Note the values in the ClientProcessID and Start Time data columns of the events you trace.

  3. コンテキスト内でイベントを表示します。Display the events in context.

    • トレースのプロパティを表示し、 ClientProcessIDClientProcessID Event Class の各データ列もキャプチャする必要があります。Display the trace properties, and group by the ClientProcessIDdata column rather than by the Event Class data column.

    • 表示する各クライアント プロセス ID のノードを展開します。Expand the nodes of each client process ID you want to view. トレース全体を手動で検索するか、または前の対象イベントの Start Time 値が見つかるまで [検索] オプションを使用します。Search through the trace manually, or use Find until you find the previously noted Start Timevalues of the target events. 選択した各クライアント プロセス ID に属するその他のイベントと共に、イベントは発生順に表示されます。The events are displayed in chronological order with the other events that belong to each selected client process ID. たとえば、トレース内にキャプチャされた Deadlock データ列に加えて Deadlock Chainイベントは、展開されたクライアント プロセス ID 内の SQL:BatchStartingevents within the expデータ列に加えてed client process ID.For example, the Deadlock and Deadlock Chainevents, captured within the trace, appear immediately after the SQL:BatchStartingevents within the expanded client process ID.

これと同じ方法で、グループ化されたイベントを見つけることができます。The same technique can be used to find any grouped events. 目的のイベントが見つかったら、 ClientProcessIDApplicationName、その他のイベント クラスでイベントをグループ化すると、関連する動作を発生順に表示できます。Once you have found the events you seek, group them by ClientProcessID, ApplicationName, or another event class to view related activity in chronological order.

参照See Also

保存されているトレースの表示 (Transact-SQL) View a Saved Trace (Transact-SQL)
sys.fn_trace_getinfo (Transact-SQL) sys.fn_trace_getinfo (Transact-SQL)
フィルター情報の表示 (SQL Server Profiler) View Filter Information (SQL Server Profiler)
フィルター情報の表示 (Transact-SQL) View Filter Information (Transact-SQL)
トレース ファイルを開く (SQL Server Profiler) Open a Trace File (SQL Server Profiler)
トレース テーブルを開く (SQL Server Profiler)Open a Trace Table (SQL Server Profiler)