Dela via


Åtkomst till diagnostikinformation i loggen för utökade händelser

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Ladda ned OLE DB-drivrutins

Från och med SQL Server 2012 (11.x) har OLE DB-drivrutinen för SQL Server och spårning av dataåtkomst (Data Access Tracing) uppdaterats för att göra det enklare att få diagnostikinformation om anslutningsfel från anslutningsringsbufferten och programprestandainformationen från loggen för utökade händelser.

Information om hur du läser loggen för utökade händelser finns i Visa händelsesessionsdata.

Not

Den här funktionen är endast avsedd för felsökning och diagnostik och kanske inte är lämplig för granskning eller säkerhetsändamål.

Anmärkningar

För anslutningsåtgärder skickar OLE DB-drivrutinen för SQL Server ett klientanslutnings-ID. Om anslutningen misslyckas kan du komma åt anslutningsringsbufferten (Anslutningsfelsökning i SQL Server 2008 med anslutningsringsbufferten och hitta fältet ClientConnectionID och få diagnostikinformation om anslutningsfelet. Klientanslutnings-ID:t loggas endast i ringbufferten om ett fel inträffar. (Om en anslutning misslyckas innan preloginpaketet skickas genereras inte något klientanslutnings-ID.) Klientanslutnings-ID:t är ett GUID på 16 byte. Du kan också hitta klientanslutnings-ID:t i utdatamålet för utökade händelser om åtgärden client_connection_id läggs till i händelser i en utökad händelsesession. Du kan aktivera spårning av dataåtkomst och köra anslutningskommandot igen och observera fältet ClientConnectionID i dataåtkomstspårningen för en misslyckad åtgärd, om du behöver ytterligare diagnostisk hjälp.

OLE DB-drivrutinen för SQL Server skickar också ett trådspecifikt aktivitets-ID. Aktivitets-ID:t registreras i de utökade händelsesessionerna om sessionerna startas med alternativet TRACK_CAUSALITY aktiverat. För prestandaproblem med en aktiv anslutning kan du hämta aktivitets-ID:t från klientens dataåtkomstspårning (ActivityID- fält) och sedan hitta aktivitets-ID:t i utdata för utökade händelser. Aktivitets-ID:t i de utökade händelserna är ett GUID på 16 byte (inte samma som GUID för klientanslutnings-ID:t) som läggs till med ett sekvensnummer på fyra byte. Sekvensnumret representerar ordningen på en begäran i en tråd och anger den relativa ordningen för batch- och RPC-instruktioner för tråden. Det ActivityID- kan också skickas för SQL-batchinstruktioner och RPC-begäranden när spårning av dataåtkomst är aktiverat och den 18:e biten i konfigurationsordet för spårning av dataåtkomst är aktiverat.

Följande är ett exempel som använder Transact-SQL för att starta en utökad händelsesession som lagras i en ringbuffert och registrerar aktivitets-ID:t som skickas från en klient i RPC- och batchåtgärder.

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)  
  

Kontrollfil

Innehållet i OLE DB-drivrutinen för SQL Server-kontrollfilen (ctrl.guid) är:

{8B98D3F2-3CC6-0B9C-6651-9649CCE5C752}  0x630ff  0   MSDADIAG.ETW
{EE7FB59C-D3E8-9684-AEAC-B214EFD91B31}  0x630ff  0   MSOLEDBSQL.1  

MOF-fil

Innehållet i OLE DB-drivrutinen för SQL Server mof-filen är:

#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;  
};  
  
/////////////////////////////////////////////////////////////////////////////  
//  
//  MSOLEDBSQL.1  
  
[  
 dynamic: ToInstance,  
 Description("MSOLEDBSQL.1"),  
 Guid("{EE7FB59C-D3E8-9684-AEAC-B214EFD91B31}"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSOLEDBSQL_1 : EventTrace  
{  
};  
  
[  
 dynamic: ToInstance,  
 Description("MSOLEDBSQL.1"),  
 Guid("{EE7FB59D-D3E8-9684-AEAC-B214EFD91B31}"),  
 DisplayName("MSOLEDBSQL.1"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSOLEDBSQL_1_Trace : Bid2Etw_MSOLEDBSQL_1  
{  
};  
  
[  
 dynamic: ToInstance,  
 Description("MSOLEDBSQL.1 formatted output (A)"),  
 EventType(17),  
 EventTypeName("TextA"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSOLEDBSQL_1_Trace_TextA : Bid2Etw_MSOLEDBSQL_1_Trace  
{  
    [  
     WmiDataId(1),  
     Description("Module ID"),  
     read  
    ]  
    uint32 ModID;  
  
    [  
     WmiDataId(2),  
     Description("Text StringA"),  
     extension("RString"),  
     read  
    ]  
    object msgStr;  
};  
  
[  
 dynamic: ToInstance,  
 Description("MSOLEDBSQL.1 formatted output (W)"),  
 EventType(18),  
 EventTypeName("TextW"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSOLEDBSQL_1_Trace_TextW : Bid2Etw_MSOLEDBSQL_1_Trace  
{  
    [  
     WmiDataId(1),  
     Description("Module ID"),  
     read  
    ]  
    uint32 ModID;  
  
    [  
     WmiDataId(2),  
     Description("Text StringW"),  
     extension("RWString"),  
     read  
    ]  
    object msgStr;  
};  

Se även

felhantering