Ereignisablaufverfolgung für Windows-Ziel

Gilt für:SQL Server

Bevor Sie die Ereignisablaufverfolgung für Windows (Event Tracing for Windows, ETW) als Ziel verwenden, sollten Sie über ausreichende Kenntnisse der ETW verfügen. ETW wird entweder in Verbindung mit erweiterten Ereignissen oder als Ereignisconsumer für erweiterte Ereignisse verwendet. Über die folgenden externen Links erhalten Sie erste Hintergrundinformationen zur ETW:

Das ETW-Ziel ist ein Singletonziel, auch wenn es mehreren Sitzungen hinzugefügt werden kann. Auch wenn ein Ereignis in vielen Sitzungen ausgelöst wird, wird das Ereignis nur einmal je aufgetretenem Ereignis an das ETW-Ziel weitergeleitet. Die Engine für erweiterte Ereignisse ist pro Prozess auf eine einzelne Instanz beschränkt.

Wichtig

Damit das ETW-Ziel funktioniert, muss das SQL Server Service-Startkonto Mitglied der Gruppe "Performance Log Users" sein.

Die Konfiguration der Ereignisse in einer ETW-Sitzung wird von einem Prozess gesteuert, in dem die Engine für erweiterte Ereignisse gehostet ist. Die Engine steuert, welche Ereignisse ausgelöst werden und welche Bedingungen erfüllt sein müssen, damit ein Ereignis ausgelöst wird.

Nach der Bindung an eine Erweiterte Ereignissitzung, die das ETW-Ziel zum ersten Mal während der Lebensdauer eines Prozesses anfügt, öffnet das ETW-Ziel eine einzelne ETW-Sitzung auf dem SQL Server-Anbieter. Wenn bereits eine ETW-Sitzung vorhanden ist, erhält das ETW-Ziel einen Verweis auf die vorhandene Sitzung. Diese ETW-Sitzung wird für alle SQL Server-Instanzen auf einem bestimmten Computer freigegeben. Diese ETW-Sitzung empfängt alle Ereignisse von Sitzungen, die das ETW-Ziel aufweisen.

Da für ETW Anbieter erforderlich sind, damit Ereignisse verwendet werden und an ETW fließen können, sind alle Pakete für erweiterte Ereignisse für die Sitzung aktiviert. Wenn ein Ereignis ausgelöst wird, sendet das ETW-Ziel das Ereignis an die Sitzung, in der der Anbieter für das Ereignis aktiviert ist.

Das ETW-Ziel unterstützt die synchrone Veröffentlichung von Ereignissen in dem Thread, der das Ereignis auslöst. Das ETW-Ziel unterstützt jedoch keine asynchrone Ereignisveröffentlichung.

Das ETW-Ziel unterstützt keine Kontrolle von externen ETW-Controllern wie Logman.exe. Für ETW-Ablaufverfolgungen muss eine Ereignissitzung mit dem ETW-Ziel erstellt werden. Weitere Informationen finden Sie unter CREATE EVENT SESSION (Transact-SQL).

Hinweis

Bei Aktivieren des ETW-Ziels wird eine ETW-Sitzung mit dem Namen XE_DEFAULT_ETW_SESSION erstellt. Wenn eine Sitzung mit dem Namen XE_DEFAULT_ETW_SESSION bereits vorhanden ist, wird sie verwendet, ohne die Eigenschaften der vorhandenen Sitzung zu ändern. Die XE_DEFAULT_ETW_SESSION wird zwischen allen Instanzen von SQL Server gemeinsam genutzt. Nachdem Sie XE_DEFAULT_ETW_SESSION gestartet haben, müssen Sie dies mit einem ETW-Controller beenden, z. B. dem Logman-Tool. Sie können zum Beispiel den folgenden Befehl an der Eingabeaufforderung ausführen: logman stop XE_DEFAULT_ETW_SESSION -ets.

In der folgenden Tabelle werden die verfügbaren Optionen für das Konfigurieren des ETW-Ziels beschrieben.

Option Zulässige Werte Beschreibung
default_xe_session_name Eine Zeichenfolge mit bis zu 256 Zeichen. Dieser Wert ist optional. Der Name der Sitzung für erweiterte Ereignisse. Standardmäßig ist dies XE_DEFAULT_ETW_SESSION.
default_etw_session_logfile_path Eine Zeichenfolge mit bis zu 256 Zeichen. Dieser Wert ist optional. Der Pfad der Protokolldatei für die Sitzung für erweiterte Ereignisse. Standardmäßig ist dies %TEMP%\XEEtw.etl.
default_etw_session_logfile_size_mb Eine beliebige Ganzzahl ohne Vorzeichen. Dieser Wert ist optional. Die Protokolldateigröße in Megabyte (MB) für die Sitzung für erweiterte Ereignisse. Die Standardeinstellung ist 20 MB.
default_etw_session_buffer_size_kb Eine beliebige Ganzzahl ohne Vorzeichen. Dieser Wert ist optional. Die Größe des Puffers im Arbeitsspeicher in Kilobyte (KB) für die Sitzung für erweiterte Ereignisse. Die Standardeinstellung ist 128 KB.
retries Eine beliebige Ganzzahl ohne Vorzeichen. Die Anzahl erneuter Versuche, das Ereignis im ETW-Subsystem zu veröffentlichen, bevor es gelöscht wird. Der Standardwert ist 0.

Die Konfiguration dieser Einstellungen ist optional. Das ETW-Ziel verwendet Standardwerte für diese Einstellungen.

Das ETW-Ziel führt die folgenden Aufgaben aus:

  • Erstellen der ETW-Standardsitzung.

  • Registrieren aller Pakete für erweiterte Ereignisse bei ETW. Dadurch wird sichergestellt, dass Ereignisse nicht von ETW gelöscht werden.

  • Verwalten des Ereignisflusses zu ETW. Das ETW-Ziel erstellt ein ETW-Ereignis mit Daten für erweiterte Ereignisse und sendet es an die zugehörige ETW-Sitzung. Wenn das Ereignis größer als die Puffergröße ist oder Daten nicht in ein ETW-Ereignis passen, teilt ETW das Ereignis in Fragmente auf.

  • Ständiges Beibehalten der Aktivierung von Paketen für erweiterte Ereignisse.

Die folgenden Standarddateispeicherorte werden von ETW verwendet:

  • Die ETW-Ausgabedatei befindet sich im Ordner %TEMP%\XEEtw.etl.

    Wichtig

    Der Dateipfad kann nach dem Start der ersten Sitzung nicht mehr geändert werden.

  • MoF-Dateien (Managed Object Format) befinden sich im <Installationspfad>\Microsoft SQL Server\Shared. Weitere Informationen finden Sie unter Managed Object Format auf der MSDN-Website.

Hinzufügen des Ziels zu einer Sitzung

Wenn Sie das ETW-Ziel einer Sitzung für erweiterte Ereignisse hinzufügen möchten, müssen Sie beim Erstellen oder Ändern einer Ereignissitzung die folgende Anweisung einschließen:

ADD TARGET package0.etw_classic_sync_target

Weitere Informationen zu einem vollständigen Beispiel, das zeigt, wie das ETW-Ziel verwendet wird und wie die Daten angezeigt werden, finden Sie unter Überwachen der Systemaktivität mit erweiterten Ereignissen.