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:SQL Server
azure SQL Managed Instance
Relace system_health je relace rozšířených událostí, která je ve výchozím nastavení součástí SQL Serveru a spravované instance Azure SQL. Tato relace se spustí automaticky při spuštění databázového systému a probíhá bez jakéhokoliv znatelného vlivu na výkon. Relace shromažďuje systémová data, která můžete použít k řešení problémů s výkonem v databázovém stroji.
Důležité
Doporučujeme relaci nezastavovat, měnit ani odstraňovat system_health . Změny v nastavení relace system_health mohou být přepsány budoucí aktualizací produktu.
Relace shromažďuje následující informace:
-
sql_textasession_idpro každé sezení, které narazí na chybu se závažností >= 20. -
sql_textasession_idpro všechny sezení, která narazí na chybu související s pamětí. Mezi chyby patří 17803, 701, 802, 8645, 8651, 8657 a 8902. - Záznam jakýchkoli problémů s neodezvou plánovače. Zobrazí se v protokolu chyb SQL Serveru jako chyba 17883.
- Všechny zjištěné deadlocky, včetně grafu deadlocku.
-
callstack,sql_textasession_idpro všechny relace, které čekaly na západky (nebo jiné zajímavé zdroje) po dobu > 15 sekund. -
callstack,sql_textasession_idpro všechny relace, které čekaly na zámky po dobu 30 sekund. -
callstack,sql_textasession_idpro všechny relace, které čekaly dlouho na přednostní čekání. Doba trvání se liší podle typu čekání. Preemptivní čekání je místo, kde SQL Server čeká na volání externího rozhraní API. - Selhání při přidělování
callstackCLR a selhání při virtuálním přidělovánísession_id. - Události kruhového vyrovnávacího zásobníku pro zprostředkovatele paměti, monitorování plánovače, stav nedostatku paměti (OOM) na uzlu paměti, zabezpečení a připojení.
- Výsledky systémových komponent z
sp_server_diagnostics. - Stav instance shromažďovaný uživatelem
scheduler_monitor_system_health_ring_buffer_recorded. - Selhání přiřazení CLR
- Chyby připojení při použití
connectivity_ring_buffer_recorded. - Chyby zabezpečení při použití
security_error_ring_buffer_recorded.
Poznámka:
Další informace o deadlocích najdete v průvodci deadlocky. Další informace o chybových zprávách SQL najdete v tématu Události a chyby databázového stroje.
Zobrazení dat relace system_health
Relace používá jak cílové místo pro kruhovou vyrovnávací paměť, tak cílové místo pro soubor událostí k ukládání dat. Cílový soubor události je nakonfigurován s maximální velikostí 5 MB a zásadou uchovávání maximálně 4 souborů. V edicích SQL Server Standard a Enterprise má cílový soubor událostí zvýšené limity: maximální velikost 100 MB a politika uchovávání až 10 souborů.
Pokud chcete zobrazit data relace z kruhové vyrovnávací paměti pomocí uživatelského rozhraní Rozšířených událostí dostupného v aplikaci SQL Server Management Studio, viz téma Rozšířené zobrazení cílových dat z Rozšířených událostí v systému SQL Server – Sledování živých dat.
Pokud chcete zobrazit data relace z kruhového bufferu cíle pomocí Transact-SQL, použijte následující dotaz:
SELECT CAST(xet.target_data as xml) AS target_data
FROM sys.dm_xe_session_targets xet
JOIN sys.dm_xe_sessions xe
ON xe.address = xet.event_session_address
WHERE xe.name = 'system_health'
Pokud chcete zobrazit data relace ze souboru události, použijte uživatelské rozhraní prohlížeče událostí Rozšířených událostí dostupné v aplikaci SQL Server Management Studio. Další informace naleznete v tématu Zobrazení dat událostí v aplikaci SQL Server Management Studio.
Obnovit relaci system_health
Pokud odstraníte relaci system_health, můžete ji obnovit spuštěním skriptu u_tables.sql. Tento soubor se nachází v následující složce, kde C: představuje jednotku, do které jste nainstalovali programové soubory SQL Serveru, a MSSQLnn hlavní verzi SQL Serveru:
C:\Program Files\Microsoft SQL Server\MSSQLnn.\<instanceid>\MSSQL\Install
Po obnovení relace ji musíte spustit pomocí ALTER EVENT SESSION příkazu nebo pomocí uzlu Rozšířené události v Průzkumníku objektů. Jinak se relace spustí automaticky při příštím restartování služby SQL Serveru.
Sezení system_health v Azure SQL
Ve službě Azure SQL Managed Instance můžete data relace zobrazit tím, že v Průzkumníku objektů kliknete pravým tlačítkem myši na jeden z těchto cílů event_file nebo ring_buffer a poté vyberete Zobrazit data cíle.
Ve službě Azure SQL Database není žádná integrovaná system_health relace rozšířených událostí, ale můžete použít sys.fn_xe_file_target_read_file() funkci ke čtení z relací rozšířených událostí, které sami vytvoříte a uložíte v Azure Storage. Návod najdete v tématu Cílový kód souboru událostí pro rozšířené události ve službě Azure SQL Database.