Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Microsoft.Data.SqlClient zpřístupňuje trasování přístupu k datům prostřednictvím zdroje událostí Microsoft.Data.SqlClient.EventSource. Další komponenty ADO.NET, jako jsou například poskytovatelé .NET Framework pro Oracle, OLE DB a ODBC a DataSet, mají vlastní trasovací zařízení.
Trasování volání rozhraní API pro přístup k datům vám může pomoct s diagnostikou následujících problémů:
Neshoda schématu mezi klientským programem a databází
Problémy s nedostupností databáze nebo síťovými knihovnami
Nesprávný kód SQL bez ohledu na to, jestli je pevně zakódovaný nebo vygenerovaný aplikací.
Nesprávná programovací logika
Problémy vyplývající z interakce mezi několika komponentami ADO.NET nebo mezi ADO.NET a vlastními komponentami
Aby bylo možné podporovat různé technologie trasování, trasování je rozšiřitelné, takže vývojář může sledovat problém na jakékoli úrovni zásobníku aplikací. I když trasování není funkcí určenou pouze pro ADO.NET, poskytovatelé společnosti Microsoft využívají obecné rozhraní API pro trasování a instrumentaci.
Další informace o tom, jak shromažďovat trasování Microsoft.Data.SqlClient, najdete v tématu Povolení trasování EventSource v SqlClient.
Přístup k diagnostickým informacím v protokolu rozšířených událostí
Pomocí ID připojení Microsoft.Data.SqlClient korelujte události klienta s diagnostickými informacemi serveru, jako jsou selhání připojení, v kruhové vyrovnávací paměti připojení a protokolu rozšířených událostí. Informace o tom, jak číst protokol rozšířených událostí, naleznete v tématu Zobrazit data relace událostí.
Pro operace připojení Microsoft.Data.SqlClient odesílá ID připojení klienta během předběžné výměny. Pokud připojení selže, vyhledejte pole ClientConnectionID ve kruhové vyrovnávací paměti připojení a získejte diagnostické informace o selhání připojení. ID připojení klienta se protokolují do kruhové vyrovnávací paměti pouze v případě, že dojde k chybě. Pokud se připojení nepodaří před výměnou preloginu, server ID neobdrží. ID připojení klienta je 16-bajtový identifikátor GUID. ID připojení klienta můžete najít také ve výstupu cíle rozšířených událostí, pokud přidáte client_connection_id akci k událostem v relaci rozšířených událostí.
Pokud chcete získat ID připojení klienta prostřednictvím kódu programu, použijte ClientConnectionId.
ID připojení je pro SqlConnection k dispozici po úspěšném navázání připojení. Pokud pokus o připojení selže, může být ID k dispozici prostřednictvím ClientConnectionId.
Microsoft. Data.SqlClient také odesílá ID aktivity specifické pro vlákno pro dávkové příkazy a požadavky vzdáleného volání procedur (RPC), pokud je jeho zdroj událostí povolený a server podporuje hlavičky trasování. Pokud chcete zaznamenat ID aktivity v relaci rozšířených událostí, povolte TRACK_CAUSALITY. V případě problémů s výkonem při aktivním připojení vyhledejte ID aktivity v trasování klienta a pak ve výstupu rozšířených událostí. ID aktivity obsahuje identifikátor GUID 16 bajtů a čtyřbajtů pořadové číslo. Pořadové číslo označuje relativní pořadí požadavků v rámci vlákna. Zastaralé konfigurační klíčové slovo pro trasování přístupu k datům nekonfiguruje zdroj událostí Microsoft.Data.SqlClientu.
Následuje ukázka, která používá Transact-SQL ke spuštění relace rozšířených událostí, která se uloží do kruhového bufferu a zaznamenává ID aktivity odeslané z klienta při operacích RPC a dávkových operacích.
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)