Sdílet prostřednictvím


Přehled rozšířených událostí

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLDatabáze SQL v Microsoft Fabric

Architektura Extended Events (XEvents) umožňuje uživatelům shromažďovat potřebné množství dat pro monitorování, identifikaci nebo řešení problémů s výkonem v SQL Serveru, Azure SQL Database, Azure SQL Managed Instance a SQL databázi ve službě Fabric. Rozšířené události jsou vysoce konfigurovatelné, jednoduché a škálovatelné. Další informace naleznete v tématu Architektura rozšířených událostí.

Rozšířené události nahrazují zastaralé funkce sql Trace a SQL Server Profiler.

Pokud chcete začít s rozšířenými událostmi, použijte rychlý start: Rozšířené události.

Poznámka:

V případě Azure SQL Database, SQL databáze ve Fabric a SQL Managed Instance se příklady kódu můžou lišit, protože soubory pro cíl event_file jsou uloženy ve službě Azure Storage. Další informace najdete v tématu Rozšířené události v Azure SQL.

Výhody rozšířených událostí

Extended Events je jednoduchý systém monitorování výkonu, který používá minimální systémové prostředky a poskytuje podrobné podrobné zobrazení databázového stroje. SQL Server Management Studio poskytuje grafické uživatelské rozhraní pro rozšířené události, které umožňují vytvářet, upravovat a odstraňovat relace událostí a zobrazovat a analyzovat data relací. Další informace o podpoře rozšířených událostí v sadě Management Studio najdete tady:

Koncepty rozšířených událostí

Rozšířené události vycházejí ze stávajících konceptů trasování událostí pro Windows (ETW), jako jsou události a příjemce událostí, a zavádí nové koncepty, jako je akce a predikát.

Následující tabulka obsahuje odkazy na dokumentaci, které vám porozumí konceptům rozšířených událostí.

Article Description
Balíčky rozšířených událostí Popisuje balíčky rozšířených událostí, které obsahují objekty. Tyto objekty slouží k získání a zpracování dat při spuštění relace rozšířených událostí.
Cíle rozšířených událostí Popisuje příjemce událostí, kteří mohou přijímat data během relace události.
Modul rozšířených událostí Popisuje modul, který implementuje a spravuje relaci rozšířených událostí.
Relace rozšířených událostí Popisuje relaci rozšířených událostí.

Architektura rozšířených událostí

Rozšířené události jsou název obecného systému zpracování událostí pro serverové systémy. Infrastruktura rozšířených událostí podporuje korelaci dat z databázového stroje a za určitých podmínek korelaci dat z operačního systému a databázových aplikací. V případě operačního systému musí být výstup rozšířených událostí směrován na trasování událostí pro Windows (ETW). Trasování událostí pro Windows může korelovat data událostí s operačním systémem nebo daty událostí aplikace.

Všechny aplikace mají spouštěcí body, které jsou užitečné jak uvnitř, tak mimo aplikaci. V aplikaci lze asynchronní zpracování vytvořit frontu pomocí informací shromážděných během počátečního spuštění úlohy. Mimo aplikaci body provádění poskytují monitorovací nástroje s informacemi. Informace o chování a charakteristikách výkonu monitorované aplikace.

Rozšířené události podporují použití dat událostí mimo proces. Tato data obvykle používají uživatelé, kteří spravují nebo podporují produkt tím, že provádějí monitorování výkonu nebo vyvíjejí aplikace na produktu pro účely ladění. Data se využívají nebo analyzují pomocí nástrojů, jako jsou SQL Server Management Studio, XEvent Profiler a Performance Monitor a nástroje příkazového řádku T-SQL nebo Windows.

Rozšířené události mají následující klíčové aspekty návrhu:

  • Modul rozšířených událostí je nezávislý na událostech. Modul může svázat jakoukoli událost s jakýmkoli cílem, protože modul není omezen obsahem události. Další informace o modulu rozšířených událostí naleznete v tématu Modul rozšířených událostí.
  • Události jsou oddělené od příjemců událostí, které se nazývají cíle v rozšířených událostech. To znamená, že jakýkoli cíl může přijímat jakoukoli událost. Kromě toho může cíl automaticky využívat každou událost, která je vyvolána, což může protokolovat nebo poskytnout další kontext události. Další informace najdete v tématu Cíle rozšířených událostí.
  • Události se liší od akce, která se má provést, když dojde k události. Proto může být jakákoli akce přidružená k jakékoli události.
  • Predikáty můžou dynamicky filtrovat, když se mají zachytit data událostí. Dynamické filtrování zvyšuje flexibilitu infrastruktury rozšířených událostí. Další informace naleznete v tématu Balíčky rozšířených událostí.

Rozšířené události můžou synchronně generovat data událostí (a asynchronně zpracovávat tato data), což poskytuje flexibilní řešení pro zpracování událostí. Rozšířené události navíc poskytují následující funkce:

  • Jednotný přístup ke zpracování událostí v systému serveru a zároveň umožňuje uživatelům izolovat konkrétní události pro účely řešení potíží.
  • Integrace s existujícími nástroji pro Windows a podpora pro windows
  • Plně konfigurovatelný mechanismus zpracování událostí, který používá Transact-SQL.
  • Schopnost dynamicky monitorovat aktivní procesy a současně mít na tyto procesy minimální vliv.
  • Výchozí relace stavu systému, která se spouští bez znatelných efektů výkonu. Relace shromažďuje systémová data, která můžete použít k řešení problémů s výkonem. Další informace najdete v tématu Použití relace system_health.

Úlohy rozšířených událostí

Pomocí sady Management Studio nebo Transact-SQL můžete spouštět příkazy jazyka DDL (Transact-SQL Data Definition Language), využívat zobrazení a funkce dynamické správy nebo zobrazení katalogu, můžete vytvořit jednoduchá nebo složitá řešení potíží s rozšířenými událostmi SQL Serveru pro prostředí SQL Serveru.

Popis úkolu Article
Pomocí Průzkumníka objektů můžete spravovat relace událostí. Správa relací událostí v Průzkumníku objektů
Popisuje, jak používat dostupné cíle rozšířených událostí (Extended Events). Cíle rozšířených událostí
Popisuje, jak zobrazit a aktualizovat cílová data. Zobrazení dat událostí v aplikaci SQL Server Management Studio
Popisuje architekturu relací Extended Events. Relace rozšířených událostí
Popisuje, jak pomocí nástrojů Rozšířených událostí vytvářet a spravovat relace rozšířených událostí. Nástroje rozšířených událostí
Popisuje, jak změnit relaci rozšířených událostí. Změna relace rozšířených událostí
Popisuje, jak získat informace o polích přidružených k událostem. Získání polí pro všechny události
Popisuje, jak zjistit, jaké události jsou k dispozici v registrovaných balíčcích. Dotazy SELECT a JOIN z systémových pohledů pro rozšířené události
Popisuje, jak zobrazit události a akce rozšířené události, které jsou ekvivalentní jednotlivým událostem trasování SQL a přidruženým sloupcům. Zobrazení ekvivalentů rozšířených událostí ke třídám událostí trasování SQL
Popisuje, jak převést existující skript trasování SQL na relaci rozšířených událostí. Převod existujícího skriptu trasování SQL na relaci rozšířených událostí
Popisuje, jak určit, které dotazy drží zámek, plán dotazu a zásobník Transact-SQL v době, kdy byl zámek pořízen. Určení dotazů, které uchovávají zámky
Popisuje, jak identifikovat zdroj zámků. Vyhledání objektů, které mají na nich nejvíce zámků
Popisuje použití rozšířených událostí s trasováním událostí pro Windows k monitorování systémové aktivity. Monitorování systémové aktivity pomocí rozšířených událostí
Použití zobrazení katalogu a zobrazení dynamické správy (DMV) pro rozšířené události Dotazy SELECT a JOIN z systémových pohledů pro rozšířené události

Zobrazení katalogu rozšířených událostí

Rozšířené události poskytují několik zobrazení katalogu. Zobrazení katalogu vás seznámí s metadaty nebo definicí relace událostí. Informace o instancích aktivních relací událostí naleznete v tématu Zobrazení dynamické správy rozšířených událostí.

Název zobrazení katalogu Description
sys.database_event_session_actions Vrátí řádek pro každou akci pro každou událost relace událostí v oboru databáze.
sys.database_event_session_events Vrátí řádek pro každou událost v relaci událostí v oboru databáze.
sys.database_event_session_fields Vrátí řádek pro každý přizpůsobitelný sloupec, který byl explicitně nastaven na události a cíle relace v oboru databáze.
sys.database_event_session_targets Vrátí řádek pro každý cílový objekt události pro relaci událostí v rámci databáze.
sys.database_event_sessions Vrátí řádek pro každou relaci událostí v rámci databáze.

Zobrazení dynamické správy rozšířených událostí

Rozšířené události poskytují několik zobrazení dynamické správy (DMV). Zobrazení dynamické správy vrací informace o aktivních (spuštěných) relacích událostí, jako jsou relace a cílové statistiky.

Název zobrazení dynamické správy Description
sys.dm_xe_database_session_event_actions Vrátí informace o akcích relací událostí v oboru databáze.
sys.dm_xe_database_session_events Vrátí informace o událostech relace událostí v oboru databáze.
sys.dm_xe_database_session_object_columns Zobrazuje hodnoty konfigurace pro objekty vázané na relaci s oborem databáze.
sys.dm_xe_database_session_targets Vrátí informace o cílech relace událostí v oboru databáze.
sys.dm_xe_database_sessions Vrátí řádek pro každou relaci událostí v oboru databáze spuštěnou v aktuální databázi.

Povolení

V Azure SQL Database, SQL databázi v Fabricu, Azure SQL Managed Instance a v SQL Serveru 2022 a novějších verzích podporují Rozšířené události podrobný model oprávnění. Můžete udělit následující oprávnění:

CREATE ANY DATABASE EVENT SESSION
DROP ANY DATABASE EVENT SESSION
ALTER ANY DATABASE EVENT SESSION
ALTER ANY DATABASE EVENT SESSION ADD EVENT
ALTER ANY DATABASE EVENT SESSION DROP EVENT
ALTER ANY DATABASE EVENT SESSION ADD TARGET
ALTER ANY DATABASE EVENT SESSION DROP TARGET
ALTER ANY DATABASE EVENT SESSION ENABLE
ALTER ANY DATABASE EVENT SESSION DISABLE
ALTER ANY DATABASE EVENT SESSION OPTION

Informace o tom, co každý z těchto ovládacích prvků oprávnění řídí, naleznete v tématu CREATE EVENT SESSION, ALTER EVENT SESSION a DROP EVENT SESSION.

Všechna tato oprávnění jsou součástí CONTROL oprávnění k databázi, spravované instanci SQL nebo instanci SQL Serveru. Ve službě Azure SQL Database vlastník databáze (dbo), členové db_owner databázové role a správci logického serveru uchovávají oprávnění k databázi CONTROL . Ve službě Azure SQL Managed Instance a na SQL Serveru členové sysadmin role serveru uchovávají CONTROL oprávnění k instanci.

Příklady kódu se můžou lišit pro Azure SQL Database, SQL databázi v Fabricu a SQL Managed Instance.

Některé Transact-SQL příklady kódu napsané pro SQL Server potřebují malé změny ke spuštění ve službě Azure SQL Database nebo v databázi SQL v prostředcích infrastruktury. Jedna kategorie takových příkladů kódu zahrnuje zobrazení katalogu, jejichž předpony názvů se liší v závislosti na typu databázového stroje:

  • server_ - předpona pro SQL Server a spravovanou instanci Azure SQL
  • database_ - předpona pro Azure SQL Database, databázi SQL v prostředcích infrastruktury a službu SQL Managed Instance

Azure SQL Database a SQL databáze ve službě Fabric podporují pouze relace událostí určené pro databáze. SQL Server Management Studio (SSMS) podporuje relace událostí omezené na databázi pro Azure SQL Database: V rámci každé databáze v Průzkumníku objektů se zobrazuje uzel rozšířených událostí, který obsahuje relace omezené na databázi.

Spravovaná instance Azure SQL podporuje relace s oborem databáze i relace s oborem serveru. SSMS plně podporuje relace s vymezeným serverem pro službu SQL Managed Instance: uzel Rozšířených událostí obsahující všechny relace s oborem serveru se zobrazí ve složce Správa pro každou spravovanou instanci v Průzkumníku objektů.

Poznámka:

Relace událostí v oboru serveru se doporučují pro spravovanou instanci Azure SQL.

Relace událostí v oboru databáze se nezobrazují v Průzkumníku objektů v SSMS pro spravovanou instanci Azure SQL. Ve spravované instanci SQL se relace událostí v oboru databáze dají dotazovat a spravovat pouze pomocí jazyka Transact-SQL.

Na obrázku uvádí následující tabulka a porovnává dvě podmnožina zobrazení katalogu. Podmnožina má různé předpony názvů, protože podporují různé typy databázových strojů.

Název v SQL Serveru a azure SQL Managed Instance Název ve službě Azure SQL Database, SQL databáze ve službě Fabric a Azure SQL Managed Instance
sys.server_event_session_actions
sys.server_event_session_events
sys.server_event_session_fields
sys.server_event_session_targets
sys.server_event_sessions
sys.database_event_session_actions
sys.database_event_session_events
sys.database_event_session_fields
sys.database_event_session_targets
sys.database_event_sessions