Erweiterte Ereignisübersicht
Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance
Mit der XEvents-Architektur (Extended Events) können Benutzer so viele oder so wenig Daten sammeln, wie erforderlich, um die Leistung in SQL Server, Azure SQL-Datenbank und Azure SQL verwaltete Instanz zu überwachen, zu identifizieren oder zu beheben. Erweiterte Ereignisse sind sehr konfigurierbar, leicht und skaliert gut. Weitere Informationen finden Sie unter "Erweiterte Ereignisarchitektur".
Erweiterte Ereignisse ersetzen die veralteten SQL-Ablaufverfolgungs - und SQL Server Profiler-Features.
Verwenden Sie schnellstart: Erweiterte Ereignisse, um mit erweiterten Ereignissen zu beginnen.
Hinweis
Wenn Sie Azure SQL verwenden, erfahren Sie, wie Sich Codebeispiele für Azure SQL-Datenbank und SQL-verwaltete Instanz und mehr über erweiterte Ereignisse in Azure SQL-Datenbank unterscheiden können.
Vorteile von erweiterten Ereignissen von
Erweiterte Ereignisse sind ein einfaches System zur Leistungsüberwachung, das minimale Systemressourcen verwendet und gleichzeitig eine detaillierte, ausführliche Ansicht des Datenbankmoduls bereitstellt. SQL Server Management Studio bietet eine grafische Benutzeroberfläche für erweiterte Ereignisse zum Erstellen, Ändern und Ablegen von Ereignissitzungen und zum Anzeigen und Analysieren von Sitzungsdaten. Weitere Informationen zur Unterstützung erweiterter Ereignisse in Management Studio finden Sie unter:
Konzepte für erweiterte Ereignisse
Erweiterte Ereignisse basieren auf vorhandenen Konzepten aus der Ereignisablaufverfolgung für Windows, z . B. Ereignis - und Ereignisverbraucher, und führt neue Konzepte wie Aktion und Prädikat ein.
Die folgende Tabelle enthält Dokumentationsreferenzen, um die Konzepte in erweiterten Ereignissen zu verstehen.
Artikel | Beschreibung |
---|---|
Erweiterte Ereignispakete | Beschreibt die „Erweiterte Ereignisse“-Pakete, die Objekte enthalten. Diese Objekte werden verwendet, um Daten abzurufen und zu verarbeiten, wenn eine „Erweiterte Ereignisse“-Sitzung ausgeführt wird. |
Ziele für erweiterte Ereignisse | Beschreibt die Ereignisconsumer, die während einer Ereignissitzung Daten empfangen können. |
Modul für erweiterte Ereignisse | Beschreibt die Engine, die eine Sitzung für erweiterte Ereignisse implementiert und verwaltet. |
Erweiterte Ereignissitzungen | Beschreibt die Sitzung für erweiterte Ereignisse. |
Architektur erweiterter Ereignisse
Erweiterte Ereignisse sind ein Name für ein allgemeines Ereignisbehandlungssystem für Serversysteme. Die Infrastruktur für erweiterte Ereignisse unterstützt die Korrelation von Daten aus dem Datenbankmodul und unter bestimmten Bedingungen die Korrelation von Daten aus dem Betriebssystem und Datenbankanwendungen. Für Daten vom Betriebssystem muss die Ausgabe der erweiterten Ereignisse an die Ereignisablaufverfolgung für Windows (ETW) weitergeleitet werden. ETW kann die Ereignisdaten mit Betriebssystem- oder Anwendungsereignisdaten korrelieren.
Alle Anwendungen weisen Ausführungspunkte auf, die sowohl innerhalb der Anwendung als auch außerhalb nützlich sind. Innerhalb der Anwendung kann eine asynchrone Verarbeitung mithilfe von Informationen queuiert werden, die während der ersten Ausführung einer Aufgabe gesammelt werden. Außerhalb der Anwendung stellen Ausführungspunkte Überwachungshilfsprogrammen Informationen bereit. In den Informationen sind die Verhaltens- und Leistungsmerkmale der überwachten Anwendung beschrieben.
Erweiterte Ereignisse unterstützen die Verwendung von Ereignisdaten außerhalb eines Prozesses. Diese Daten werden in der Regel entweder von Benutzern, die ein Produkt mithilfe der Leistungsüberwachung verwalten oder unterstützen, oder von Benutzern verwendet, die Anwendungen für ein Produkt zu Debugzwecken entwickeln. Daten werden mit Tools wie SQL Server Management Studio, XEvent Profiler und Leistungsmonitor sowie T-SQL- oder Windows-Befehlszeilentools genutzt oder analysiert.
Das Design von erweiterten Ereignissen zeichnet sich durch die folgenden zentralen Aspekte aus:
- Die Engine für erweiterte Ereignisse ist ereignisagnostisch. Das Modul kann jedes Ereignis an ein beliebiges Ziel binden, da das Modul nicht durch Ereignisinhalte eingeschränkt wird. Weitere Informationen zum Modul "Erweiterte Ereignisse" finden Sie im Modul "Erweiterte Ereignisse".
- Ereignisse werden von Ereignisconsumern getrennt, die in erweiterten Ereignissen als Ziele bezeichnet werden. Das bedeutet, dass jedes Ziel jedes Ereignis empfangen kann. Zusätzlich kann jedes ausgelöste Ereignis automatisch vom Ziel verarbeitet werden, das dann wiederum die Protokollierung ausführen oder zusätzlichen Ereigniskontext bereitstellen kann. Weitere Informationen finden Sie unter "Ziele für erweiterte Ereignisse".
- Ereignisse unterscheiden sich von der Aktion, die ausgeführt werden soll, wenn ein Ereignis auftritt. Dies führt dazu, dass jede beliebige Aktion jedem beliebigen Ereignis zugeordnet werden kann.
- Mithilfe von Prädikaten kann dynamisch gefiltert werden, wenn Ereignisdaten aufgezeichnet werden sollen. Dynamisches Filtern erhöht die Flexibilität der „Erweiterte Ereignisse“-Infrastruktur. Weitere Informationen finden Sie unter "Erweiterte Ereignispakete".
Erweiterte Ereignisse können Ereignisdaten synchron generieren (und diese Daten asynchron verarbeiten), die eine flexible Lösung für die Ereignisbehandlung bieten. Außerdem bieten erweiterte Ereignisse die folgenden Funktionen:
- Eine im gesamten Serversystem einheitliche Methode für die Ereignisbehandlung, wobei die Benutzer dennoch die Möglichkeit haben, einzelne Ereignisse für die Problembehandlung zu isolieren.
- Integration mit und Unterstützung von vorhandenen ETW-Tools
- Ein vollständig konfigurierbarer Ereignisbehandlungsmechanismus, der Transact-SQL verwendet.
- Die Möglichkeit zur dynamischen Überwachung aktiver Prozesse mit minimaler Beeinträchtigung dieser Prozesse.
- Eine standardmäßige Systemintegritätssitzung, die ohne merkliche Auswirkungen auf die Leistung ausgeführt wird. In der Sitzung werden Systemdaten erfasst, mit deren Hilfe Sie Leistungsprobleme beheben können. Weitere Informationen finden Sie unter Verwenden der system_health-Sitzung.
Aufgaben für erweiterte Ereignisse
Mithilfe von Management Studio oder Transact-SQL zum Ausführen von Transact-SQL Data Definition Language (DDL)-Anweisungen, Verwenden dynamischer Verwaltungsansichten und -funktionen oder Katalogansichten können Sie einfache oder komplexe SQL Server Extended Events-Problembehandlungslösungen für Ihre SQL Server-Umgebung erstellen.
Aufgabenbeschreibung | Artikel |
---|---|
Verwenden Sie den Objekt-Explorer , um Ereignissitzungen zu verwalten. | Verwalten von Ereignissitzungen im Objekt-Explorer |
Beschreibt, wie Sie eine Sitzung für erweiterte Ereignisse erstellen. | Erweiterte Ereignissitzungen |
Beschreibt, wie Sie Zieldaten anzeigen und aktualisieren. | Anzeigen von Ereignisdaten in SQL Server Management Studio |
Beschreibt, wie Sie die folgenden Tools von erweiterten Ereignissen zum Erstellen und Verwalten von erweiterten -Ereignissitzungen verwenden: | Tools für erweiterte Ereignisse |
Beschreibt, wie Sie eine Sitzung für erweiterte Ereignisse ändern. | Ändern einer Sitzung für erweiterte Ereignisse |
Beschreibt, wie Sie Informationen zu den den Ereignissen zugeordneten Feldern abrufen. | Abrufen der Felder für alle Ereignisse |
Beschreibt, wie Sie herausfinden, welche Ereignisse in den registrierten Paketen verfügbar sind. | SELECT- und JOIN-Anweisungen von Systemsichten für erweiterte Ereignisse in SQL Server |
Beschreibt, wie Sie ermitteln, welche Ziele für erweiterte Ereignisse in den registrierten Paketen verfügbar sind. | Ziele für erweiterte Ereignisse |
Beschreibt, wie Sie die Ereignisse und Aktionen für erweiterte Ereignisse anzeigen, die den einzelnen SQL-Ablaufverfolgungsereignissen und deren zugeordneten Spalten entsprechen. | Anzeigen der Entsprechungen von erweiterten Ereignissen für SQL-Ablaufverfolgungsklassen |
Beschreibt, wie Sie die Parameter finden, die Sie festlegen können, wenn Sie die ADD TARGET Klausel in CREATE EVENT SESSION oder ALTER EVENT SESSION Anweisungen verwenden. |
Ziele für erweiterte Ereignisse |
Beschreibt, wie Sie ein vorhandenes SQL-Ablaufverfolgungsskript in eine Sitzung für erweiterte Ereignisse konvertieren. | Konvertieren eines vorhandenen SQL-Ablaufverfolgungsskripts in eine Sitzung für erweiterte Ereignisse |
Beschreibt, wie Ermittelt wird, welche Abfragen die Sperre, den Plan der Abfrage und den Transact-SQL-Stapel zum Zeitpunkt der Sperre enthalten. | Feststellen, welche Abfragen Sperren enthalten |
Beschreibt, wie die Quelle von Sperren identifiziert wird. | Suchen der Objekte, die über die meisten Sperren verfügen |
Beschreibt, wie Sie anhand von erweiterten Ereignissen mit der Ereignisablaufverfolgung für Windows die Systemaktivität überwachen. | Überwachen der Systemaktivität mit erweiterten Ereignissen |
Verwenden von Katalogansichten und dynamischen Verwaltungsansichten (DYNAMIC Management Views, DMVs) für erweiterte Ereignisse | SELECT- und JOIN-Anweisungen von Systemsichten für erweiterte Ereignisse in SQL Server |
Verwenden Sie die folgende T-SQL-Abfrage, um alle möglichen Ereignisse und deren Beschreibungen zurückzugeben:
SELECT obj1.name AS [XEvent-name],
col2.name AS [XEvent-column],
obj1.description AS [Descr-name],
col2.description AS [Descr-column]
FROM sys.dm_xe_objects AS obj1
INNER JOIN sys.dm_xe_object_columns AS col2
ON col2.object_name = obj1.name
ORDER BY obj1.name,
col2.name
Codebeispiele können sich für Azure SQL-Datenbank und SQL Managed Instance unterscheiden.
Einige Transact-SQL-Codebeispiele, die für SQL Server geschrieben wurden, benötigen kleine Änderungen für die Ausführung in Azure. Eine Kategorie solcher Codebeispiele umfasst Katalogansichten, deren Namenspräfixe je nach Datenbankmodultyp unterschiedlich sind:
server_
- Präfix für SQL Server und Azure SQL verwaltete Instanzdatabase_
- Präfix für Azure SQL-Datenbank- und SQL-verwaltete Instanz
Azure SQL-Datenbank unterstützt nur Ereignissitzungen mit Datenbankbereich. SQL Server Management Studio (SSMS) unterstützt datenbankbezogene Ereignissitzungen für Azure SQL-Datenbank vollständig: Unter jeder Datenbank in Objekt-Explorer wird ein Knoten mit erweiterten Ereignissen mit Datenbankbereichssitzungen angezeigt.
Azure SQL Managed Instance unterstützt sowohl datenbankbezogene Sitzungen als auch serverbezogene Sitzungen. SSMS unterstützt vollständig serverbezogene Sitzungen für SQL Managed Instance: Der Knoten Erweiterte Ereignisse mit allen serverbezogenen Sitzungen wird unter dem Ordner Verwaltung für jede verwaltete Instanz im Objekt-Explorer angezeigt.
Hinweis
Serverbezogene Sitzungen werden für verwaltete Instanzen empfohlen. Datenbankbereichssitzungen werden in Objekt-Explorer in SSMS für Azure SQL verwaltete Instanz nicht angezeigt. Datenbankbezogene Sitzungen können nur bei Verwendung einer verwalteten Instanz mit Transact-SQL abgefragt und verwaltet werden.
Zur Veranschaulichung werden in der folgenden Tabelle zwei Teilmengen von Katalogansichten aufgelistet und verglichen. Aus Platzgründen sind diese Teilmengen auf Sichtnamen beschränkt, die auch die Zeichenfolge _event
enthalten. Die Untermengen weisen unterschiedliche Namenspräfixe auf, da sie unterschiedliche Datenbankmodultypen unterstützen.
Name in SQL Server und Azure SQL verwaltete Instanz | Name in Azure SQL-Datenbank und Azure SQL verwaltete Instanz |
---|---|
server_event_notifications server_event_session_actions server_event_session_events server_event_session_fields server_event_session_targets server_event_sessions server_events server_trigger_events |
database_event_session_actions database_event_session_events database_event_session_fields database_event_session_targets database_event_sessions |
Die beiden Listen in der vorangehenden Tabelle zeigen den Stand von März 2022. Führen Sie für eine aktuelle Liste die folgende Transact-SQL-Anweisung SELECT
aus:
SELECT name
FROM sys.all_objects
WHERE
(name LIKE 'database[_]%' OR
name LIKE 'server[_]%' )
AND name LIKE '%[_]event%'
AND type = 'V'
AND SCHEMA_NAME(schema_id) = 'sys'
ORDER BY name;
Zugehöriger Inhalt
- Dynamische Verwaltungssichten für erweiterte Ereignisse
- Katalogsichten für erweiterte Ereignisse (Transact-SQL)
- SQL-Geheimnisse: Kausalitätsnachverfolgung im Vergleich zur Ereignissequenz für XEvent-Sitzungen
- Analysieren und Verhindern von Deadlocks in Azure SQL-Datenbank
- Schnellstart: Erweiterte Ereignisse
- Ereignisdateizielcode für erweiterte Ereignisse in Azure SQL-Datenbank
- Erweiterte Ereignisse in Azure SQL-Datenbank
- XELite: Plattformübergreifende Bibliothek zum Lesen von XEvents aus XEL-Dateien oder Live-SQL-Streams
- Read-SQLXEvent PowerShell-Cmdlet
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für