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.
Platí pro: .NET Framework
.NET
Standard
.NET nabízí integrované funkce trasování dat, které jsou podporovány zprostředkovatelem dat Microsoft SqlClient pro SQL Server a síťovými protokoly SQL Serveru.
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 zprostředkovatelem dat Microsoft SqlClient pro SQL Server 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í. Zprostředkovatel dat Microsoft SqlClient pro SQL Server využívá zobecněné rozhraní API pro trasování a instrumentaci.
Další informace o nastavení a konfiguraci spravovaného trasování v .NET naleznete v tématu Trasování přístupu k datům.
Přístup k diagnostickým informacím v protokolu rozšířených událostí
V poskytovateli dat Microsoft SqlClient pro SQL Server, Trasování přístupu k datům usnadňuje korelaci událostí na straně klienta s diagnostickými informacemi, jako jsou selhání připojení z vyrovnávací paměti připojitelnosti serveru, a informace o výkonu aplikace v protokolu rozšířených událostí. Pro získání informací o tom, jak číst protokol rozšířených událostí, si přečtěte Zobrazení dat relace událostí.
V případě operací připojení odešle poskytovatel dat Microsoft SqlClient pro SQL Server ID připojení klienta. Pokud připojení selže, můžete získat přístup k vyrovnávací paměti okruhu připojení (řešení potíží s připojením v SQL Serveru 2008 s vyrovnávací pamětí okruhu připojení) a najít ClientConnectionID pole a získat diagnostické informace o selhání připojení. ID připojení klienta se protokolují do vyrovnávací paměti okruhu pouze v případě, že dojde k chybě. Pokud se připojení nezdaří před odesláním paketu preloginu, ID připojení klienta se nevygeneruje. ID připojení klienta je 16-bajtový identifikátor GUID. ID připojení klienta můžete také najít ve výstupu cíle rozšířených událostí, pokud je akce client_connection_id přidána k událostem v relaci rozšířených událostí. Pokud potřebujete další pomoc s diagnostikou klientských ovladačů, můžete povolit trasování přístupu k datům a znovu spustit příkaz pro připojení a sledovat ClientConnectionID pole v trasování přístupu k datům.
ID připojení klienta můžete získat programově pomocí SqlConnection.ClientConnectionID vlastnosti.
Poznámka:
Zprostředkovatel dat Microsoft SqlClient pro SQL Server podporuje ID relace (SPID) od verze 2.1.0. Můžete ho SqlConnection.ServerProcessId získat prostřednictvím kódu programu pomocí vlastnosti.
ClientConnectionID a ServerProcessId jsou k dispozici pro objekt SqlConnection , který úspěšně naváže připojení. Pokud pokus o připojení selže, ClientConnectionID může být k dispozici prostřednictvím SqlException.ToString.
Zprostředkovatel dat Microsoft SqlClient pro SQL Server také odesílá ID aktivity specifické pro vlákno. ID aktivity se zaznamenává v relacích rozšířených událostí, pokud jsou relace spuštěny s povolenou možností TRACK_CAUSALITY. V případě problémů s výkonem aktivního připojení můžete id aktivity získat z trasování přístupu k datům klienta (ActivityID pole) a pak vyhledat ID aktivity ve výstupu rozšířených událostí. ID aktivity v rozšířených událostech je 16-bajtový identifikátor GUID (ne totožný jako GUID pro ID připojení klienta) doplněný o 4-bajtové pořadové číslo. Pořadové číslo představuje pořadí požadavku v rámci vlákna a označuje relativní pořadí dávkových příkazů a příkazů RPC pro vlákno. V současné době se volitelně odesílá pro dávkové příkazy SQL a požadavky RPC, pokud je zapnuté trasování přístupu k datům a 18. bit v slově konfigurace trasování přístupu k datům je zapnutý.
Následující příkaz SQL je ukázkou použití Transact-SQL ke spuštění relace rozšířených událostí, která zaznamená ID aktivity posílané z klienta během RPC a dávkových operací a uloží je do kruhové vyrovnávací paměti.
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)