Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Fontos
Natív SQL Server-ügyfél (SNAC) nem a következőkkel szállítható:
- SQL Server 2022 (16.x) és újabb verziók
- AZ SQL Server Management Studio 19- és újabb verziói
Az SQL Server natív ügyfele (SQLNCLI vagy SQLNCLI11) és az örökölt Microsoft OLE DB Provider for SQL Server (SQLOLEDB) nem ajánlott az új alkalmazásfejlesztéshez.
Új projektek esetén használja az alábbi illesztőprogramok egyikét:
Az SQL Server adatbázismotor összetevőjeként (2012–2019-ben) futó SQLNCLI esetében tekintse meg ezt a Támogatási életciklus kivétel.
Az SQL Server 2012 -től kezdve (11.x) frissült az SQL Server natív ügyfél- és adathozzáférési nyomkövetése (adathozzáférés-nyomkövetési), hogy megkönnyítse a csatlakozási hibák diagnosztikai információinak lekérését a kapcsolati gyűrű pufferéből és az alkalmazás teljesítményadataiból a kiterjesztett eseménynaplóból.
A kiterjesztett eseménynapló olvasásáról további információt az Esemény munkamenet adatainak megtekintésecímű témakörben talál.
Jegyzet
Ez a funkció csak hibaelhárítási és diagnosztikai célokra szolgál, és nem feltétlenül alkalmas naplózási vagy biztonsági célokra.
Megjegyzések
A kapcsolati műveletekhez az SQL Server natív ügyfele küld egy ügyfélkapcsolat-azonosítót. Ha a kapcsolat meghiúsul, hozzáférhet a kapcsolati gyűrű pufferéhez (Kapcsolat hibaelhárítása az SQL Server 2008-ban a kapcsolati gyűrű pufferével), és megkeresheti a ClientConnectionID mezőt, és diagnosztikai információkat kaphat a kapcsolati hibáról. Az ügyfélkapcsolati azonosítók csak hiba esetén lesznek naplózva a gyűrűpufferben. (Ha egy kapcsolat az előbeírási csomag elküldése előtt meghiúsul, a rendszer nem hoz létre ügyfélkapcsolat-azonosítót.) Az ügyfélkapcsolat azonosítója egy 16 bájtos GUID. Az ügyfélkapcsolat azonosítóját a kiterjesztett események kimeneti céljában is megtalálhatja, ha a client_connection_id művelet hozzáadva van az eseményekhez egy kiterjesztett esemény-munkamenetben. Ha további diagnosztikai segítségre van szüksége, engedélyezheti az adathozzáférés nyomon követését, és újrafuttathatja a kapcsolati parancsot, és megfigyelheti a ClientConnectionID mezőt az adatelérési nyomkövetésben.
Ha ODBC-t használ az SQL Server natív ügyfélprogramjában, és egy kapcsolat sikeres, az ügyfélkapcsolat-azonosítót a SQL_COPT_SS_CLIENT_CONNECTION_ID attribútummal szerezheti be SQLGetConnectAttr.
Az SQL Server natív ügyfele egy szálspecifikus tevékenységazonosítót is küld. A tevékenységazonosító akkor lesz rögzítve a kiterjesztett esemény-munkamenetekben, ha a munkamenetek az TRACK_CAUSALITY beállítás engedélyezésével kezdődnek. Az aktív kapcsolat teljesítményproblémái esetén lekérheti a tevékenységazonosítót az ügyfél adathozzáférési nyomkövetéséből (ActivityID mezőből), majd megkeresheti a tevékenységazonosítót a kiterjesztett események kimenetében. A kiterjesztett események tevékenységazonosítója egy 16 bájtos GUID (nem ugyanaz, mint az ügyfélkapcsolat-azonosító GUID azonosítója) négy bájtos sorszámmal kiegészítve. A sorszám egy szálon belüli kérés sorrendjét jelöli, és a szál köteg- és RPC-utasításainak relatív sorrendjét jelzi. Az ActivityID opcionálisan elküldjük sql batch-utasításokhoz és RPC-kérésekhez, ha engedélyezve van az adathozzáférés-nyomkövetés, és az adathozzáférés-nyomkövetés konfigurációs szó 18. bitje be van kapcsolva.
Az alábbi minta egy Transact-SQL használatával indít el egy kiterjesztett esemény munkamenetet, amely egy gyűrűpufferben lesz tárolva, és rögzíti az ügyféltől az RPC-n és a kötegműveleteken küldött tevékenységazonosítót.
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)
Vezérlőfájl
Az SQL Server 2012 -ben (11.x) az SQL Server natív ügyfélvezérlő fájljának (ctrl.guid.snac11) tartalma a következő:
{8B98D3F2-3CC6-0B9C-6651-9649CCE5C752} 0x00000000 0 MSDADIAG.ETW
{2DA81B52-908E-7DB6-EF81-76856BB47C4F} 0xFFFFFFFF 0 SQLNCLI11.1
MOF-fájl
Az SQL Server 2012 -ben (11.x) az SQL Server natív ügyfél mof fájljának tartalma a következő:
#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;
};