Übersicht über erweiterte EreignisseExtended events overview

GILT FÜR: JaSQL Server JaAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: YesSQL Server YesAzure SQL Database NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

SQL ServerSQL Server Die Funktionalität von „Erweiterte Ereignisse“ ermöglicht es Benutzern, Daten in dem Umfang zu sammeln, der erforderlich ist, um Leistungsproblem zu erkennen oder zu beheben.The Extended Events architecture enables users to collect as much or as little data as is necessary to troubleshoot or identify a performance problem. „Erweiterte Ereignisse“ kann konfiguriert werden und lässt sich sehr gut skalieren.Extended Events is configurable, and it scales very well.

Weitere Informationen zu „Erweiterte Ereignisse“ finden Sie unter Schnellstart: Erweiterte Ereignisse in SQL Server.You can find more information about Extended Events at Quickstart: Extended events in SQL Server.

Vorteile von erweiterten Ereignissen von SQL ServerSQL ServerBenefits of SQL ServerSQL Server Extended Events

„Erweiterte Ereignisse“ ist ein schlankes Leistungsüberwachungssystem, das minimale Leistungsressourcen verwendet.Extended Events is a lightweight performance monitoring system that uses minimal performance resources. „Erweiterte Ereignisse“ stellt zwei grafische Benutzeroberflächen zum Erstellen, Ändern, Anzeigen und Analysieren von Sitzungsdaten bereit.Extended Events provides two graphical user interfaces to create, modify, display, and analyze your session data. Diese Oberflächen haben folgende Namen:These interfaces are named:

  • Assistent für neue SitzungenNew Session Wizard
  • Neue SitzungNew Session

Konzepte für erweiterte EreignisseExtended Events Concepts

SQL ServerSQL Server „Erweiterte Ereignisse“ basiert auf vorhandenen Konzepten, etwa einem Ereignis oder einem Ereignisconsumer, verwendet Konzepte aus der Ereignisablaufverfolgung für Windows und führt neue Konzepte ein.Extended Events builds on existing concepts, such as an event or an event consumer, uses concepts from Event Tracing for Windows, and introduces new concepts.

In der folgenden Tabelle werden die Konzepte von "Erweiterte Ereignisse" beschrieben.The following table describes the concepts in Extended Events.

ThemaTopic BESCHREIBUNGDescription
Pakete für erweiterte Ereignisse von SQL ServerSQL Server Extended Events Packages Beschreibt die „Erweiterte Ereignisse“-Pakete, die Objekte enthalten.Describes the Extended Events packages that contain objects. Diese Objekte werden verwendet, um Daten abzurufen und zu verarbeiten, wenn eine „Erweiterte Ereignisse“-Sitzung ausgeführt wird.These objects are used to obtain and process data when an Extended Events session is running.
Ziele für erweiterte Ereignisse von SQL ServerSQL Server Extended Events Targets Beschreibt die Ereignisconsumer, die während einer Ereignissitzung Daten empfangen können.Describes the event consumers that can receive data during an event session.
Engine für erweiterte Ereignisse von SQL ServerSQL Server Extended Events Engine Beschreibt die Engine, die eine Sitzung für erweiterte Ereignisse implementiert und verwaltet.Describes the engine that implements and manages an Extended Events session.
Sitzungen für erweiterte Ereignisse von SQL ServerSQL Server Extended Events Sessions Beschreibt die Sitzung für erweiterte Ereignisse.Describes the Extended Events session.
   

Architektur von erweiterten EreignissenExtended Events Architecture

„Erweiterte Ereignisse“ ist unser Name für ein allgemeines Ereignisbehandlungssystem für Serversysteme.Extended Events is our name for a general event-handling system for server systems. Die Infrastruktur für erweiterte Ereignisse unterstützt die Korrelation von Daten aus SQL ServerSQL Serversowie unter bestimmten Umständen die Korrelation von Daten aus dem Betriebssystem und aus Datenbankanwendungen.The Extended Events infrastructure supports the correlation of data from SQL ServerSQL Server, and under certain conditions, the correlation of data from the operating system and database applications. Für Daten vom Betriebssystem muss die Ausgabe von „Erweiterte Ereignisse“ an Ereignisablaufverfolgung für Windows (Event Tracing for Windows, ETW) weitergeleitet werden.In the operating system case, Extended Events output must be directed to Event Tracing for Windows (ETW). ETW kann die Ereignisdaten mit Betriebssystem- oder Anwendungsereignisdaten korrelieren.ETW can correlate the event data with operating system or application event data.

Alle Anwendungen weisen Ausführungspunkte auf, die sowohl innerhalb der Anwendung als auch außerhalb nützlich sind.All applications have execution points that are useful both inside and outside an application. In der Anwendung kann die asynchrone Verarbeitung in die Warteschlange eingereiht werden, wobei Informationen zugrunde gelegt werden, die bei der ersten Ausführung eines Tasks gesammelt wurden.Inside the application, asynchronous processing may be enqueued using information that is collected during the initial execution of a task. Außerhalb der Anwendung stellen Ausführungspunkte Überwachungshilfsprogrammen Informationen bereit.Outside the application, execution points provide monitoring utilities with information. In den Informationen sind die Verhaltens- und Leistungsmerkmale der überwachten Anwendung beschrieben.The information is about the behavioral and performance characteristics of the monitored application.

Erweiterte Ereignisse unterstützen die Verwendung von Ereignisdaten außerhalb eines Prozesses.Extended Events supports using event data outside a process. Diese Daten werden i. d. R. folgendermaßen verwendet:This data is typically used by:

  • Von Ablaufverfolgungstools wie der SQL-Ablaufverfolgung und dem SystemmonitorTracing tools, such as SQL Trace and System Monitor.

  • Von Tools für die Protokollierung wie dem Windows-Ereignisprotokoll oder dem SQL ServerSQL Server -FehlerprotokollLogging tools, such as the Windows event log or the SQL ServerSQL Server error log.

  • Von Benutzern, die ein Produkt verwalten oder Anwendungen für ein Produkt entwickelnUsers administering a product or developing applications on a product.

Das Design von erweiterten Ereignissen zeichnet sich durch die folgenden zentralen Aspekte aus:Extended Events has the following key design aspects:

  • Die Engine für erweiterte Ereignisse ist ereignisagnostisch.The Extended Events engine is event agnostic. In der Engine kann jedes beliebige Ereignis an jedes beliebige Ziel gebunden werden, weil die Engine nicht durch den Ereignisinhalt eingeschränkt ist.The engine can bind any event to any target, because the engine is not constrained by event content. Weitere Informationen zum Modul für erweiterte Ereignisse finden Sie unter SQL Server Extended Events Engine.For more information about the Extended Events engine, see SQL Server Extended Events Engine.

  • Ereignisse werden von Ereignisconsumern getrennt, die in erweiterten Ereignissen als Ziele bezeichnet werden.Events are separated from event consumers, which are called targets in Extended Events. Das bedeutet, dass jedes Ziel jedes Ereignis empfangen kann.This means that any target can receive any event. 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.In addition, any event that is raised can be automatically consumed by the target, which can log or provide additional event context. Weitere Informationen finden Sie unter SQL Server Extended Events Targets.For more information, see SQL Server Extended Events Targets.

  • Ereignisse unterscheiden sich von der Aktion, die ausgeführt werden soll, wenn ein Ereignis auftritt.Events are distinct from the action to take when an event occurs. Dies führt dazu, dass jede beliebige Aktion jedem beliebigen Ereignis zugeordnet werden kann.Therefore, any action can be associated with any event.

  • Mithilfe von Prädikaten kann dynamisch gefiltert werden, wenn Ereignisdaten aufgezeichnet werden sollen.Predicates can dynamically filter when event data should be captured. Dynamisches Filtern erhöht die Flexibilität der „Erweiterte Ereignisse“-Infrastruktur.Dynamic filtering adds to the flexibility of the Extended Events infrastructure. Weitere Informationen finden Sie unter SQL Server Extended Events Packages.For more information, see SQL Server Extended Events Packages.

Erweiterte Ereignisse können Ereignisdaten synchron generieren (und asynchron verarbeiten), wodurch eine flexible Lösung für die Ereignisbehandlung bereitgestellt wird.Extended Events can synchronously generate event data (and asynchronously process that data) which provides a flexible solution for event handling. Außerdem bieten erweiterte Ereignisse die folgenden Funktionen:In addition, Extended Events provides the following features:

  • 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.A unified approach to handling events across the server system, while enabling users to isolate specific events for troubleshooting purposes.

  • Integration mit und Unterstützung von vorhandenen ETW-ToolsIntegration with, and support for existing ETW tools.

  • Einen vollständig konfigurierbaren Ereignisbehandlungsmechanismus auf Grundlage von Transact-SQLTransact-SQL.A fully configurable event handling mechanism that is based on Transact-SQLTransact-SQL.

  • Die Möglichkeit zur dynamischen Überwachung aktiver Prozesse mit minimaler Beeinträchtigung dieser Prozesse.The ability to dynamically monitor active processes, while having minimal effect on those processes.

  • Eine standardmäßige Systemintegritätssitzung, die ohne merkliche Auswirkungen auf die Leistung ausgeführt wird.A default system health session that runs without any noticeable performance effects. In der Sitzung werden Systemdaten erfasst, mit deren Hilfe Sie Leistungsprobleme beheben können.The session collects system data that you can use to help troubleshoot performance issues. Weitere Informationen finden Sie unter Verwenden der system_health-Sitzung.For more information, see Use the system_health Session.

Tasks für erweiterte EreignisseExtended Events Tasks

Durch Verwenden von Management StudioManagement Studio oder Transact-SQLTransact-SQL zum Ausführen von Transact-SQLTransact-SQL -DDL-Anweisungen (Data Definition Language), dynamischen Verwaltungssichten und -funktionen oder Katalogsichten können Sie einfache oder komplexe Problembehandlungslösungen für erweiterte Ereignisse von SQL ServerSQL Server für Ihre SQL ServerSQL Server -Umgebung erstellen.Using Management StudioManagement Studio or Transact-SQLTransact-SQL to execute Transact-SQLTransact-SQL Data Definition Language (DDL) statements, dynamic management views and functions, or catalog views, you can create simple or complex SQL ServerSQL Server Extended Events troubleshooting solutions for your SQL ServerSQL Server environment.

TaskbeschreibungTask Description ThemaTopic
Verwenden Sie den Objekt-Explorer , um Ereignissitzungen zu verwalten.Use the Object Explorer to manage event sessions. Verwalten von Ereignissitzungen im Objekt-ExplorerManage Event Sessions in the Object Explorer
Beschreibt, wie Sie eine Sitzung für erweiterte Ereignisse erstellen.Describes how to create an Extended Events session. Erstellen einer Sitzung für erweiterte EreignisseCreate an Extended Events Session
Beschreibt, wie Sie Zieldaten anzeigen und aktualisieren.Describes how to view and refresh target data. Erweiterte Ansicht von Zieldaten aus erweiterten Ereignissen in SQL ServerAdvanced Viewing of Target Data from Extended Events in SQL Server
Beschreibt, wie Sie die folgenden Tools von erweiterten Ereignissen zum Erstellen und Verwalten von erweiterten SQL ServerSQL Server -Ereignissitzungen verwenden:Describes how to use Extended Events tools to create and manage your SQL ServerSQL Server Extended Events sessions. Tools für erweiterte EreignisseExtended Events Tools
Beschreibt, wie Sie eine Sitzung für erweiterte Ereignisse ändern.Describes how to alter an Extended Events session. Ändern einer Sitzung für erweiterte EreignisseAlter an Extended Events Session
Beschreibt, wie Sie Informationen zu den den Ereignissen zugeordneten Feldern abrufen.Describes how to get information about the fields associated with the events. Abrufen der Felder für alle EreignisseGet the Fields for All Events
Beschreibt, wie Sie herausfinden, welche Ereignisse in den registrierten Paketen verfügbar sind.Describes how to find out what events are available in the registered packages. Anzeigen der Ereignisse für registrierte PaketeView the Events for Registered Packages
Beschreibt, wie Sie ermitteln, welche Ziele für erweiterte Ereignisse in den registrierten Paketen verfügbar sind.Describes how to determine what Extended Events targets are available in the registered packages. Anzeigen der Ziele von erweiterten Ereignissen für registrierte PaketeView the Extended Events Targets for Registered Packages
Beschreibt, wie Sie die Ereignisse und Aktionen für erweiterte Ereignisse anzeigen, die den einzelnen SQL-Ablaufverfolgungsereignissen und deren zugeordneten Spalten entsprechen.Describes how to view the Extended Events events and actions that are equivalent to each SQL Trace event and its associated columns. Anzeigen der Entsprechungen von erweiterten Ereignissen für SQL-AblaufverfolgungsklassenView the Extended Events Equivalents to SQL Trace Event Classes
Beschreibt, wie Sie die Parameter suchen, die sich festlegen lassen, wenn Sie das ADD TARGET-Argument in CREATE EVENT SESSION oder ALTER EVENT SESSION verwenden.Describes how to find the parameters you can set when you use the ADD TARGET argument in CREATE EVENT SESSION or ALTER EVENT SESSION. Abrufen der konfigurierbaren Parameter für das ADD TARGET-ArgumentGet the Configurable Parameters for the ADD TARGET Argument
Beschreibt, wie Sie ein vorhandenes SQL-Ablaufverfolgungsskript in eine Sitzung für erweiterte Ereignisse konvertieren.Describes how to convert an existing SQL Trace script to an Extended Events session. Konvertieren eines vorhandenen SQL-Ablaufverfolgungsskripts in eine Sitzung für erweiterte EreignisseConvert an Existing SQL Trace Script to an Extended Events Session
Beschreibt die Ermittlung der gesperrten Abfragen, des Plans der Abfrage und des Transact-SQLTransact-SQL -Stapels zum Zeitpunkt der Sperrung.Describes how to determine which queries are holding the lock, the plan of the query, and the Transact-SQLTransact-SQL stack at the time the lock was taken. Feststellen, welche Abfragen Sperren enthaltenDetermine Which Queries Are Holding Locks
Beschreibt, wie Sie die Quelle von Sperren identifizieren, die die Datenbankleistung beeinträchtigen.Describes how to identify the source of locks that are hindering database performance. Suchen der Objekte, die über die meisten Sperren verfügenFind the Objects That Have the Most Locks Taken on Them
Beschreibt, wie Sie anhand von erweiterten Ereignissen mit der Ereignisablaufverfolgung für Windows die Systemaktivität überwachen.Describes how to use Extended Events with Event Tracing for Windows to monitor system activity. Überwachen der Systemaktivität mit erweiterten EreignissenMonitor System Activity Using Extended Events
Verwenden der Katalogsichten und dynamischen Verwaltungssichten für erweiterte EreignisseUsing the Catalog views and the Dynamic management views (DMVs) for extended events SELECT- und JOIN-Anweisungen von Systemsichten für erweiterte Ereignisse in SQL ServerSELECTs and JOINs From System Views for Extended Events in SQL Server
   

Verwenden Sie die folgende Transact-SQL-Abfrage (T-SQL), um alle möglichen erweiterten Ereignisse und deren Beschreibungen aufzulisten:Use the following Transact-SQL (T-SQL) query to list out all possible extended events and their descriptions:

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
      JOIN sys.dm_xe_object_columns as col2 on col2.object_name = obj1.name
  ORDER BY
    obj1.name,
    col2.name

Codebeispiele können für Azure SQL-Datenbank abweichend sein.Code examples can differ for Azure SQL Database

Einige Transact-SQL-Codebeispiele, die für lokale SQL Server-Instanzen geschrieben wurden, müssen leicht abgeändert werden, damit sie in Azure SQL-Datenbank in der Cloud ausgeführt werden können.Some Transact-SQL code examples written for SQL Server on-premises need small changes to run on Azure SQL Database service in the cloud. Eine Kategorie solcher Codebeispiele umfasst Systemsichten, deren Namenspräfixe sich zwischen den beiden Datenbanksystemen leicht unterscheiden:One category of such code examples involves system views whose name prefixes differ slightly between the two database systems:

  • server_   -   Präfix für lokale Instanzenserver_   -   prefix for on-premises
  • database_   -   Präfix für den Azure SQL DB-Dienst in der Clouddatabase_   -   prefix for Azure SQL DB service in the cloud

Zur Veranschaulichung werden in der folgenden Tabelle zwei Teilmengen der Systemsichten aufgelistet und verglichen.For illustration, the following table lists and compares two subsets of the system views. Aus Platzgründen sind diese Teilmengen auf Sichtnamen beschränkt, die auch die Zeichenfolge _event enthalten.For brevity, the subsets are restricted to view names that also contain the string _event. Die Namenspräfixe der Teilmengen unterscheiden sich, da sie aus zwei unterschiedlichen Datenbanksystemen stammen.The subsets have differing name prefixes because they come from two different database systems.

Name aus der lokalen 2017-InstanzName from on-premises 2017 Name aus dem ClouddienstName from cloud service
server_event_notificationsserver_event_notifications
server_event_session_actionsserver_event_session_actions
server_event_session_eventsserver_event_session_events
server_event_session_fieldsserver_event_session_fields
server_event_session_targetsserver_event_session_targets
server_event_sessionsserver_event_sessions
server_eventsserver_events
server_trigger_eventsserver_trigger_events
database_event_session_actionsdatabase_event_session_actions
database_event_session_eventsdatabase_event_session_events
database_event_session_fieldsdatabase_event_session_fields
database_event_session_targetsdatabase_event_session_targets
database_event_sessionsdatabase_event_sessions
   

Die beiden Listen in der vorangehenden Tabelle weisen den exakten Stand von Juni 2019 auf.The two lists in the preceding table are accurate as of June 2019. Der Inhalt der Tabelle wird jedoch möglicherweise veraltet sein, da dieser hier nicht aktualisiert wird.But the table contents here may become outdated, because they will not be maintained here. Führen Sie die folgende SELECT-Anweisung von T-SQL aus, um genaue Listen zu erhalten.For accurate lists, run the following T-SQL SELECT statement. Führen Sie die SELECT-Anweisung zweimal aus – einmal pro Datenbanksystem.Run the SELECT twice, once on each database system.

SELECT name
    FROM sys.all_objects
    WHERE
        (name LIKE 'database\_%' { ESCAPE '\' } OR
         name LIKE 'server\_%' { ESCAPE '\' })
        AND name LIKE '%\_event%' { ESCAPE '\' }
        AND type = 'V'
    ORDER BY name;

Weitere InformationenSee Also

DatenebenenanwendungenData-tier Applications
DAC-Unterstützung für SQL Server-Objekte und -VersionenDAC Support For SQL Server Objects and Versions
Bereitstellen einer DatenebenenanwendungDeploy a Data-tier Application
Überwachen von DatenebenenanwendungenMonitor Data-tier Applications
 
Dynamische Verwaltungssichten für erweiterte EreignisseExtended Events Dynamic Management Views
Katalogsichten für erweiterte Ereignisse (Transact-SQL)Extended Events Catalog Views (Transact-SQL)
 
XELite: Plattformübergreifende Bibliothek zum Lesen von XEvents aus XEL-Dateien oder SQL-Livestreams (Veröffentlicht: Mai 2019).XELite: Cross-platform library to read XEvents from XEL files or live SQL streams, released May 2019.
PowerShell-Cmdlet Read-SQLXEvent (Veröffentlicht: Juni 2019).Read-SQLXEvent PowerShell cmdlet, released June 2019.
SQL Mysteries: Causality tracking vs Event Sequence for XEvent Sessions (Blogbeitrag, der am 1. April 2019 veröffentlicht wurde)SQL Mysteries: Causality tracking vs Event Sequence for XEvent Sessions (blog published April 1, 2019)