Delen via


Toegang tot diagnostische gegevens in het uitgebreide gebeurtenissenlogboek

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

OLE DB-stuurprogramma downloaden

Vanaf SQL Server 2012 (11.x) zijn OLE DB-stuurprogramma voor SQL Server en tracering van gegevenstoegang (Gegevenstoegang tracering) bijgewerkt om het gemakkelijker te maken diagnostische informatie over verbindingsfouten op te halen uit de buffer voor connectiviteitsring en toepassingsprestaties uit het uitgebreide gebeurtenislogboek.

Zie Gebeurtenissessiegegevens weergevenvoor meer informatie over het lezen van het uitgebreide gebeurtenissenlogboek.

Notitie

Deze functie is alleen bedoeld voor probleemoplossing en diagnostische doeleinden en is mogelijk niet geschikt voor controle- of beveiligingsdoeleinden.

Opmerkingen

Voor verbindingsbewerkingen verzendt het OLE DB-stuurprogramma voor SQL Server een clientverbindings-id. Als de verbinding mislukt, hebt u toegang tot de connectiviteitsringsbuffer (Connectiviteitsproblemen oplossen in SQL Server 2008 met de connectiviteitsringsbuffer en vindt u het veld ClientConnectionID en krijgt u diagnostische informatie over de verbindingsfout. Clientverbindings-id's worden alleen in de ringbuffer geregistreerd als er een fout optreedt. (Als een verbinding mislukt voordat het prelogin-pakket wordt verzonden, wordt er geen clientverbindings-id gegenereerd.) De clientverbindings-id is een GUID van 16 bytes. U kunt ook de clientverbindings-id vinden in het uitvoerdoel voor uitgebreide gebeurtenissen als de actie client_connection_id wordt toegevoegd aan gebeurtenissen in een uitgebreide gebeurtenissessie. U kunt tracering van gegevenstoegang inschakelen en de verbindingsopdracht opnieuw uitvoeren en het veld ClientConnectionID in het gegevenstoegangstracering bekijken voor een mislukte bewerking, als u verdere diagnostische hulp nodig hebt.

OLE DB-stuurprogramma voor SQL Server verzendt ook een threadspecifieke activiteits-id. De activiteits-id wordt vastgelegd in de uitgebreide gebeurtenissessies als de sessies worden gestart met de optie TRACK_CAUSALITY is ingeschakeld. Voor prestatieproblemen met een actieve verbinding kunt u de activiteits-id ophalen uit de gegevenstoegangstracering van de client (ActivityID veld) en vervolgens de activiteits-id zoeken in de uitvoer van de uitgebreide gebeurtenissen. De activiteits-id in de uitgebreide gebeurtenissen is een GUID van 16 bytes (niet hetzelfde als de GUID voor de clientverbindings-id) die is toegevoegd aan een reeksnummer van vier bytes. Het volgnummer vertegenwoordigt de volgorde van een aanvraag binnen een thread en geeft de relatieve volgorde van batch- en RPC-instructies voor de thread aan. De ActivityID- wordt optioneel verzonden voor SQL-batchinstructies en RPC-aanvragen wanneer tracering van gegevenstoegang is ingeschakeld en de 18e bit in het configuratiewoord voor tracering van gegevenstoegang is ingeschakeld.

Hier volgt een voorbeeld dat gebruikmaakt van Transact-SQL om een uitgebreide gebeurtenissessie te starten die wordt opgeslagen in een ringbuffer en de activiteits-id registreert die is verzonden vanaf een client op RPC en batchbewerkingen.

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)  
  

Besturingselementbestand

De inhoud van het OLE DB-stuurprogramma voor sql Server-besturingsbestand (ctrl.guid) is:

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

MOF-bestand

De inhoud van het OLE DB-stuurprogramma voor sql Server-mof-bestand 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;  
};  
  
/////////////////////////////////////////////////////////////////////////////  
//  
//  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;  
};  

Zie ook

fouten afhandelen