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 Database
Spravovaná 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é, nenáročné a dobře se škálují. 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ží ke získávání a zpracování dat během běhu relace Extended Events. |
| Cíle rozšířených událostí | Popisuje příjemce události, kteří mohou přijímat data v průběhu relace události. |
| Modul rozšířených událostí | Popisuje modul, který zajišťuje implementaci a správu relace Extended Events. |
| 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 funkce Extended Events směřován do Event Tracing for Windows (ETW). ETW může propojit data událostí s daty událostí operačního systému nebo 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í zařadit do fronty s využitím informací získaných při počátečním 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 Sledování výkonu 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 být každá vyvolaná událost automaticky zpracována cílem, který ji může zaznamenat nebo doplnit její další kontext. 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 se stávajícími nástroji ETW a jejich podpora.
- 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ého dopadu na výkon. Relace shromažďuje data o systému, která můžete použít jako pomůcku při řešení potíží s výkonem. Další informace naleznete v tématu Použití relace system_health.
Úlohy nástroje Extended Events
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 používat nástroje Extended Events k vytváření a správě relací Extended Events. | Nástroje rozšířených událostí |
| Popisuje, jak změnit relaci rozšířených událostí. | Změňte relaci 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 funkce Extended Events, které odpovídají každé události SQL Trace a jejím souvisejícím sloupcům. | Zobrazte ekvivalenty funkce Extended Events pro třídy událostí nástroje SQL Trace |
| Popisuje, jak převést existující skript SQL Trace 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 zjistit, které dotazy zámek drží, plán dotazu a zásobník Transact-SQL v době, kdy byl zámek získán. | Zjistěte, které dotazy drží 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 katalogových zobrazení. Zobrazení katalogu poskytují informace o metadatech relace události nebo její metadata či definici. 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 pro rozšířené události
Extended Events poskytuje 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 DMV | 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 SESSIONa 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é ukázky kódu v jazyce Transact-SQL napsané pro SQL Server vyžadují drobné úpravy, aby je bylo možné spustit ve službě Azure SQL Database nebo v databázi SQL ve službě Fabric. 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:
Pro Azure SQL Managed Instance se doporučují relace událostí s rozsahem serveru.
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.
Pro ilustraci následující tabulka uvádí a porovnává dvě podmnožiny 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_actionssys.server_event_session_eventssys.server_event_session_fieldssys.server_event_session_targetssys.server_event_sessions |
sys.database_event_session_actionssys.database_event_session_eventssys.database_event_session_fieldssys.database_event_session_targetssys.database_event_sessions |
Související obsah
- Zobrazení dynamické správy rozšířených událostí
- Zobrazení katalogu rozšířených událostí (Transact-SQL)
- Záhady SQL: Sledování kauzality vs. sekvence událostí v relacích XEvent
- Analýza a prevence zablokování ve službě Azure SQL Database a SQL Database v Fabric
- Rychlý start: Rozšířené události
- Vytvoření relace události s cílem event_file ve službě Azure Storage
- Rozšířené události v Azure SQL
- XELite: Multiplatformní knihovna pro čtení XEvents ze souborů XEL nebo živých datových proudů SQL