Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Belangrijk
SQL Server Native Client (SNAC) wordt niet geleverd met:
- SQL Server 2022 (16.x) en latere versies
- SQL Server Management Studio 19 en latere versies
De SQL Server Native Client (SQLNCLI of SQLNCLI11) en de verouderde Microsoft OLE DB-provider voor SQL Server (SQLOLEDB) worden niet aanbevolen voor de ontwikkeling van nieuwe toepassingen.
Gebruik een van de volgende stuurprogramma's voor nieuwe projecten:
Voor SQLNCLI die als onderdeel van SQL Server Database Engine (versies 2012 tot en met 2019) wordt geleverd, raadpleegt u deze uitzondering voor de levenscyclus van ondersteuning.
Vanaf SQL Server 2012 (11.x) zijn tracering van SQL Server Native Client en gegevenstoegang (Data Access Tracing) bijgewerkt, zodat u gemakkelijker diagnostische informatie kunt krijgen over verbindingsfouten 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 SQL Server Native Client een clientverbindings-id. Als de verbinding mislukt, hebt u toegang tot de connectiviteitsringsbuffer (Connectiviteitsproblemen oplossen in SQL Server 2008 met de connectiviteitsringsbuffer) en zoekt 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.
Als u ODBC gebruikt in sql Server Native Client en er een verbinding slaagt, kunt u de clientverbindings-id ophalen met behulp van het kenmerk SQL_COPT_SS_CLIENT_CONNECTION_ID met SQLGetConnectAttr-.
SQL Server Native Client 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
In SQL Server 2012 (11.x) is de inhoud van het besturingselementbestand van sql Server Native Client (ctrl.guid.snac11):
{8B98D3F2-3CC6-0B9C-6651-9649CCE5C752} 0x00000000 0 MSDADIAG.ETW
{2DA81B52-908E-7DB6-EF81-76856BB47C4F} 0xFFFFFFFF 0 SQLNCLI11.1
MOF-bestand
In SQL Server 2012 (11.x) is de inhoud van het bestand SQL Server Native Client:
#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;
};