拡張イベント ログの診断情報へのアクセスAccessing Diagnostic Information in the Extended Events Log

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

以降でSQL Server 2012 (11.x)SQL Server 2012 (11.x)SQL ServerSQL Server Native Client とデータ アクセスのトレース (データ アクセスのトレース)、接続リングからの接続エラーに関する診断情報を取得するが簡単に更新されました拡張イベント ログからバッファーやアプリケーションのパフォーマンス情報。Beginning in SQL Server 2012 (11.x)SQL Server 2012 (11.x), SQL ServerSQL Server Native Client and data access tracing (Data Access Tracing) have been updated to make it easier to get diagnostic information about connection failures from the connectivity ring buffer and application performance information from the extended events log.

拡張イベント ログを表示する方法については、「イベント セッション データの表示」を参照してください。For information about reading the extended events log, see View Event Session Data.

注意

この機能は、トラブルシューティングおよび診断用であるため、監査やセキュリティの用途には適さない場合があります。This feature is intended only for troubleshooting and diagnostic purposes and may not be suitable for auditing or security purposes.

コメントRemarks

接続操作では、SQL ServerSQL Server Native Client はクライアント接続 ID を送信します。For connection operations, SQL ServerSQL Server Native Client will send a client connection ID. 接続に失敗した場合は、接続リング バッファー (接続リング バッファーによる SQL Server 2008 での接続トラブルシューティング) にアクセスし、ClientConnectionID フィールドを見つけて、接続エラーに関する診断情報を取得することができます。If the connection fails, you can access the connectivity ring buffer (Connectivity troubleshooting in SQL Server 2008 with the Connectivity Ring Buffer) and find the ClientConnectionID field and get diagnostic information about the connection failure. クライアント接続 ID は、エラーが発生した場合にのみリング バッファーに記録されます。Client connection IDs are logged in the ring buffer only if an error occurs. (接続がログイン前のパケットを送信する前に失敗すると、クライアント接続 ID は生成されません。)クライアント接続 ID は 16 バイトの GUID です。(If a connection fails before sending the prelogin packet, a client connection ID will not be generated.) The client connection ID is a 16-byte GUID. また、client_connection_id 操作を拡張イベント セッションのイベントに追加すると、拡張イベントの出力先でクライアント接続 ID を検索することもできます。You can also find the client connection ID in the extended events output target, if the client_connection_id action is added to events in an extended events session. 詳しい診断サポートが必要な場合は、データ アクセスのトレースを有効にして、接続コマンドを再実行し、失敗した操作のデータ アクセスのトレースで ClientConnectionID フィールドを調べます。You can enable data access tracing and rerun the connection command and observe the ClientConnectionID field in the data access trace for a failed operation, if you need further diagnostic assistance.

ODBC を使用している場合SQL ServerSQL ServerNative Client との接続が成功すると、クライアントを取得する接続 ID を使用して、 SQL_COPT_SS_CLIENT_CONNECTION_ID属性SQLGetConnectAttr.If you are using ODBC in SQL ServerSQL Server Native Client and a connection succeeds, you can get the client connection ID by using the SQL_COPT_SS_CLIENT_CONNECTION_ID attribute with SQLGetConnectAttr.

SQL ServerSQL Server Native Client は、スレッド固有のアクティビティ ID も送信します。Native Client also sends a thread-specific activity ID. アクティビティ ID は、TRACK_CAUSAILITY オプションを有効にしてセッションを開始した場合、拡張イベント セッションでキャプチャされます。The activity ID is captured in the extended events sessions if the sessions are started with the TRACK_CAUSAILITY option enabled. アクティブな接続に関するパフォーマンスの問題については、クライアントのデータ アクセスのトレース (ActivityID フィールド) からアクティビティ ID を取得し、このアクティビティ ID を拡張イベント出力で検索することができます。For performance issues with an active connection, you can get the activity ID from the client's data access trace (ActivityID field) and then locate the activity ID in the extended events output. 拡張イベントのアクティビティ ID は、16 バイトの GUID (クライアント接続 ID の GUID とは異なります) に 4 バイトのシーケンス番号が付加されたものです。The activity ID in the extended events is a 16-byte GUID (not the same as the GUID for the client connection ID) appended with a four-byte sequence number. シーケンス番号は、スレッド内で要求の順序を表し、スレッドのバッチと RPC ステートメントの相対的順序を示します。The sequence number represents the order of a request within a thread and indicates the relative ordering of batch and RPC statements for the thread. ActivityID は必要に応じて、データ アクセスのトレースが有効であり、データ アクセス トレース構成ワードの 18 番目のビットがオンである場合に、SQL バッチ ステートメントと RPC 要求に送信されます。The ActivityID is optionally sent for SQL batch statements and RPC requests when data access tracing is enabled on and the 18th bit in the data access tracing configuration word is turned ON.

次は、リング バッファーに格納され、RPC とバッチ操作でクライアントから送信されるアクティビティ ID を記録する拡張イベントのセッションを開始するために Transact-SQLTransact-SQL を使用するサンプルです。The following is a sample that uses Transact-SQLTransact-SQL to start an extended events session that will be stored in a ring buffer and will record the activity ID sent from a client on RPC and batch operations.

create event session MySession on server   
add event connectivity_ring_buffer_recorded,   
add event sql_statement_starting (action (client_connection_id)),   
add event sql_statement_completed (action (client_connection_id)),   
add event rpc_starting (action (client_connection_id)),   
add event rpc_completed (action (client_connection_id))  
add target ring_buffer with (track_causality=on)  
  

制御ファイルControl File

SQL Server 2012 (11.x)SQL Server 2012 (11.x) の SQL Server Native Client 制御ファイル (ctrl.guid.snac11) の内容は次のとおりです。In SQL Server 2012 (11.x)SQL Server 2012 (11.x), the contents of the SQL Server Native Client control file (ctrl.guid.snac11) is:

{8B98D3F2-3CC6-0B9C-6651-9649CCE5C752}  0x00000000  0   MSDADIAG.ETW  
{2DA81B52-908E-7DB6-EF81-76856BB47C4F}  0xFFFFFFFF  0   SQLNCLI11.1  

MOF ファイルMOF File

SQL Server 2012 (11.x)SQL Server 2012 (11.x) の SQL Server Native Client MOF ファイルの内容は次のとおりです。In SQL Server 2012 (11.x)SQL Server 2012 (11.x), the contents of the SQL Server Native Client mof file is:

#pragma classflags("forceupdate")  
#pragma namespace ("\\\\.\\Root\\WMI")  
  
/////////////////////////////////////////////////////////////////////////////  
//  
//  MSDADIAG.ETW  
  
[  
 dynamic: ToInstance,  
 Description("MSDADIAG.ETW"),  
 Guid("{8B98D3F2-3CC6-0B9C-6651-9649CCE5C752}"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSDADIAG_ETW : EventTrace  
{  
};  
  
[  
 dynamic: ToInstance,  
 Description("MSDADIAG.ETW"),  
 Guid("{8B98D3F3-3CC6-0B9C-6651-9649CCE5C752}"),  
 DisplayName("msdadiag"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSDADIAG_ETW_Trace : Bid2Etw_MSDADIAG_ETW  
{  
};  
  
[  
 dynamic: ToInstance,  
 Description("MSDADIAG.ETW formatted output (A)"),  
 EventType(17),  
 EventTypeName("TextA"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSDADIAG_ETW_Trace_TextA : Bid2Etw_MSDADIAG_ETW_Trace  
{  
    [  
     WmiDataId(1),  
     Description("Module ID"),  
     read  
    ]  
    uint32 ModID;  
  
    [  
     WmiDataId(2),  
     Description("Text StringA"),  
     extension("RString"),  
     read  
    ]  
    object msgStr;  
};  
  
[  
 dynamic: ToInstance,  
 Description("MSDADIAG.ETW formatted output (W)"),  
 EventType(18),  
 EventTypeName("TextW"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSDADIAG_ETW_Trace_TextW : Bid2Etw_MSDADIAG_ETW_Trace  
{  
    [  
     WmiDataId(1),  
     Description("Module ID"),  
     read  
    ]  
    uint32 ModID;  
  
    [  
     WmiDataId(2),  
     Description("Text StringW"),  
     extension("RWString"),  
     read  
    ]  
    object msgStr;  
};  
  
/////////////////////////////////////////////////////////////////////////////  
//  
//  SQLNCLI11.1  
  
[  
 dynamic: ToInstance,  
 Description("SQLNCLI11.1"),  
 Guid("{2DA81B52-908E-7DB6-EF81-76856BB47C4F}"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_SQLNCLI11_1 : EventTrace  
{  
};  
  
[  
 dynamic: ToInstance,  
 Description("SQLNCLI11.1"),  
 Guid("{2DA81B53-908E-7DB6-EF81-76856BB47C4F}"),  
 DisplayName("SQLNCLI11.1"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_SQLNCLI11_1_Trace : Bid2Etw_SQLNCLI11_1  
{  
};  
  
[  
 dynamic: ToInstance,  
 Description("SQLNCLI11.1 formatted output (A)"),  
 EventType(17),  
 EventTypeName("TextA"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_SQLNCLI11_1_Trace_TextA : Bid2Etw_SQLNCLI11_1_Trace  
{  
    [  
     WmiDataId(1),  
     Description("Module ID"),  
     read  
    ]  
    uint32 ModID;  
  
    [  
     WmiDataId(2),  
     Description("Text StringA"),  
     extension("RString"),  
     read  
    ]  
    object msgStr;  
};  
  
[  
 dynamic: ToInstance,  
 Description("SQLNCLI11.1 formatted output (W)"),  
 EventType(18),  
 EventTypeName("TextW"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_SQLNCLI11_1_Trace_TextW : Bid2Etw_SQLNCLI11_1_Trace  
{  
    [  
     WmiDataId(1),  
     Description("Module ID"),  
     read  
    ]  
    uint32 ModID;  
  
    [  
     WmiDataId(2),  
     Description("Text StringW"),  
     extension("RWString"),  
     read  
    ]  
    object msgStr;  
};  

関連項目See Also

エラーとメッセージの処理Handling Errors and Messages