SQL Server Extended Events-Ziele

SQL Server Extended Events-Ziele sind Ereignisconsumer. Ziele können in eine Datei schreiben, Ereignisdaten aggregieren oder einen Task in Bezug auf das Ereignis starten. Ziele können Daten synchron oder asynchron verarbeiten.

Durch das Design von Extended Events wird sichergestellt, dass Ziele garantiert nur einmal pro Sitzung Ereignisse empfangen.

Extended Events stellt die folgenden Ziele zur Verwendung in einer Extended Events-Sitzung bereit:

  • Gruppieren von Ereignissen

    Dient dazu, die Häufigkeit eines bestimmten Ereignisses auf Grundlage einer bestimmten Ereignisspalte oder Aktion zu zählen.

  • Ereignispaarbildung

    Viele Arten von Ereignissen treten paarweise auf, wie z. B. Anforderungen zur Einrichtung und Aufhebung einer Sperre. Ereignispaarbildung wird eingesetzt, um zu bestimmen, wann ein spezifisches, kombiniertes Ereignis nicht als Paar auftritt.

  • Ereignisablaufverfolgung für Windows (Event Tracing for Windows, ETW)

    Wird eingesetzt, um SQL Server-Ereignisse mit Ereignisdaten von Anwendungen oder des Windows-Betriebssystems zu korrelieren.

  • Ereignisdatei

    Wird eingesetzt, um die Ereignissitzungsausgabe aus vollständigen Speicherpuffern auf die Festplatte zu schreiben.

  • Synchroner Ereigniszähler

    Zählt alle angegebenen Ereignisse, die während einer Extended Events-Sitzung auftreten. Wird eingesetzt, um Informationen über Merkmale der Arbeitsauslastung ohne den Aufwand einer vollständigen Ereignisauflistung zu sammeln.

  • Ringpuffer

    Wird eingesetzt, um die Ereignisdaten auf Basis einer FIFO-Reihenfolge (First-In-First-Out) oder auf Basis einer ereignisbezogenen FIFO-Reihenfolge im Speicher zu behalten.

Die Ziele können in Datei- und Speicherziele unterteilt werden.

  • Das Ereignisdateiziel und das ETW-Ziel werden als Dateiziele angesehen.

  • Das Gruppieren von Ereignissen, die Ereignispaarbildung, der synchrone Ereigniszähler und der Ringpuffer sind Ziele, die als Speicherziele angesehen werden. Bei diesen Zielen werden die Daten im Sitzungspuffer gespeichert (target_data-Spalte der dynamischen sys.dm_xe_session_targets-Verwaltungssicht).

Beachten Sie, dass beim Beenden einer Sitzung, die Speicherziele nutzt, alle im Sitzungspuffer gespeicherten Informationen gelöscht werden. Wenn Sie die Ereignisdaten auch nach dem Beenden der Sitzung verwenden möchten, sollten Sie die Sitzung entweder so konfigurieren, dass sie ein Dateiziel verwendet (empfohlen) oder die Daten vor dem Beenden speichern.

Die folgenden Richtlinien können als Entscheidungshilfe bei der Wahl des Ziels dienen.

Ziel

Empfohlene Verwendung

Ereignisdatei- oder ETW-Ziel

Wenn eine oder mehrere der folgenden Bedingungen zutreffen, sollte ein Dateiziel eingesetzt werden.

  • Die Daten sollen über einen langen Zeitraum gesammelt werden.

  • Es sollen Daten für sehr umfangreiche Ereignisse gesammelt werden.

  • Die Ereignisdaten werden noch zu einem späteren Zeitpunkt benötigt.

Ringpufferziel

Wenn eine oder mehrere der folgenden Bedingungen zutreffen, sollte ein Ringpufferziel eingesetzt werden:

  • Die Abläufe sollen zyklisch verfolgt werden, wobei die Daten kontinuierlich gesammelt werden, jedoch nur die jeweils aktuellsten Ereignisse von Bedeutung sind (etwa zwei Megabyte (MB) Ereignisdaten). Möglicherweise sollen die Daten auch nur über einen kurzen Zeitraum gesammelt und nur die aktuellsten Ereignisse angezeigt werden.

  • Es sollen alle im Sitzungspuffer gespeicherten Ereignisdaten angezeigt werden. Es sollen also die Rohdaten und keine aggregierten Informationen dargestellt werden.

  • Die Ereignisdaten müssen nicht für einen späteren Zeitpunkt aufbewahrt werden.

Gruppieren von Ereignissen, Ereignispaarbildung oder synchroner Ereigniszähler

Wenn die folgenden Bedingungen zutreffen, sollte eines dieser Speicherziele eingesetzt werden:

  • Es soll ein spezifisches Problem behandelt werden, indem ein Ziel verwendet wird, mit dem die Ereignisdaten aggregiert und analysiert werden können. Sie möchten beispielsweise wissen, ob noch offene Transaktionen vorhanden sind (Ereignispaarbildung), oder welche Abfragen in einem bestimmten Zeitraum die meiste CPU-Leistung verwendet haben (Gruppieren von Ereignissen).

  • Die Daten sollen über einen kurzen Zeitraum gesammelt werden.

  • Die Ereignisdaten müssen nicht für einen späteren Zeitpunkt aufbewahrt werden.

Ziel "Gruppieren von Ereignissen"

Das Ziel Gruppieren von Ereignissen fasst Ereignisse eines bestimmten Ereignistyps auf Grundlage von Ereignisdaten zu Buckets zusammen. Bei einem Bucket handelt es sich um eine Gruppierung von Ereignissen, die auf Grundlage einer bestimmten Ereignisspalte oder Aktion gezählt werden. Mithilfe des Ziels Gruppieren von Ereignissen können Sie Leistungsprobleme diagnostizieren. Durch Identifizieren der am häufigsten eintretenden Ereignisse können Sie relevante Bereiche ausmachen, die auf mögliche Ursachen eines Leistungsproblems hindeuten.

In der folgenden Tabelle werden die verfügbaren Optionen zum Konfigurieren des Ziels Gruppieren von Ereignissen beschrieben.

Option

Zulässige Werte

Beschreibung

slots

Ein ganzzahliger Wert. Dieser Wert ist optional.

Ein vom Benutzer angegebener Wert, der die maximale Anzahl von Buckets angibt, die beizubehalten sind. Wenn dieser Wert erreicht wird, werden neue Ereignisse, die nicht zu vorhandenen Buckets gehören, ignoriert.

filtering_event_name

Ein beliebiges Ereignis in der Extended Events-Sitzung. Dieser Wert ist optional.

Ein vom Benutzer angegebener Wert, mit dem eine Klasse von Ereignissen identifiziert wird. Nur Instanzen des angegebenen Ereignisses werden Buckets zugeordnet. Alle anderen Ereignisse werden ignoriert.

Wenn Sie diesen Wert angeben, müssen Sie folgendes Format verwenden: Paketname.Ereignisname. Beispiel: 'sqlserver.checkpoint_end'. Sie können den Paketnamen mit der folgenden Abfrage ermitteln:

SELECT p.name, se.event_name
FROM sys.dm_xe_session_events se
JOIN sys.dm_xe_packages p
ON se_event_package_guid = p.guid
ORDER BY p.name, se.event_name

Wenn Sie den Wert filtering_event_name nicht angeben, muss source_type auf 1 (den Standardwert) festgelegt werden.

source_type

Der Typ des Objekts, auf dem der Bucket basiert. Dieser Wert ist optional. Wenn er nicht angegeben wird, wird 1 als Standardwert verwendet.

Kann einen der folgenden Werte aufweisen:

  • 0 für ein Ereignis

  • 1 für eine Aktion

source

Ereignisspalte oder Aktionsname.

Die Ereignisspalte oder der Aktionsname, die bzw. der als Datenquelle verwendet wird.

Wenn Sie für source eine Ereignisspalte angeben, müssen Sie eine Spalte aus dem Ereignis angeben, das für den Wert filtering_event_name verwendet wird. Sie können mögliche Spalten mithilfe der folgenden Abfrage identifizieren:

SELECT name FROM sys.dm_xe_object_columns
WHERE object_name = '<eventname>'
AND column_type != 'readonly'

Wenn Sie für source eine Ereignisspalte angeben, müssen Sie den Paketnamen nicht im Wert source angeben.

Wenn Sie für source einen Aktionsnamen angeben, müssen Sie eine der konfigurierten Aktionen verwenden, die für die Auflistung in der Ereignissitzung konfiguriert ist, für die dieses Ziel verwendet wird. Mögliche Werte für den Aktionsnamen können Sie ermitteln, indem Sie die action_name-Spalte der sys.dm_xe_sesssion_event_actions-Sicht abfragen.

Wenn Sie einen Aktionsnamen als Datenquelle verwenden, müssen Sie den source-Wert im Format Paketname.Aktionsname angeben.

Im folgenden Beispiel wird das Erfassen von Daten mit dem Ziel Gruppieren von Ereignissen auf abstrakter Ebene veranschaulicht. In diesem Beispiel soll das Ziel Gruppieren von Ereignissen zum Zählen der Anzahl der eingetretenen Wartevorgänge je Wartevorgangstyp verwendet werden. Dazu geben Sie beim Definieren des Ziels Gruppieren von Ereignissen die folgenden Optionen an:

  • filtering_event_name = 'wait_info'

  • source = 'wait_type'

  • source_type = 0 (da "wait_type" eine Ereignisspalte ist)

Im Beispielszenario werden die folgenden Daten für die wait_type-Quelle aufgezeichnet:

Ereignisnamensfilter

Quellspaltenwert

wait_info

file_io

wait_info

file_io

wait_info

network

wait_info

network

wait_info

sleep

Die wait_type-Werte werden in drei Buckets mit den folgenden Werten und der jeweiligen Slotanzahl kategorisiert:

Wert

Slotanzahl

file_io

2

network

2

sleep

1

Weitere Informationen zum Ziel Gruppieren von Ereignissen finden Sie unter Vorgehensweise: Überwachen der Systemaktivität mit Extended Events.

Das Ziel Gruppieren von Ereignissen behält nur Ereignisdaten für die angegebene Quelle bei. In manchen Fällen können die Ereignisdaten zu lang sein. Dann werden sie abgeschnitten. Wenn Ereignisdaten abgeschnitten werden, wird die Anzahl von Bytes aufgezeichnet und als XML-Ausgabe angezeigt.

Das Ziel zum Gruppieren von Ereignissen serialisiert Daten zu einem aufrufenden Programm oder einer Prozedur im XML-Format.

HinweisHinweis

Die Ausgabe der Gruppierung von Ereignissen entspricht keinem Schema.

Im folgenden Beispiel wird das Ausgabeformat des Ziels zum Gruppieren von Ereignissen veranschaulicht.

<Slots truncated = "0" buckets=[count]>
    <Slot count=[count] trunc=[truncated bytes]>
        <value>
        </value>
    </Slot>
</Slots>

Ziel "Ereignispaarbildung"

Das Ziel Ereignispaarbildung ordnet zwei Ereignisse mithilfe mindestens einer Datenspalte in jedem Ereignis einander zu. Viele Ereignisse sind einander paarweise zugeordnet, z. B. die Anforderungen zur Einrichtung und Aufhebung einer Sperre. Nachdem eine Ereignissequenz paarweise zugeordnet wurde, werden beide Ereignisse verworfen. Das Verwerfen übereinstimmender Sätze ermöglicht ein problemloses Erkennen von eingerichteten Sperren, die noch nicht aufgehoben wurden.

Beim Verwenden von Filtern auf Ereignisebene können mithilfe des Ziels Ereignispaarbildung nur die Ereignisse aufgezeichnet werden, die nicht den voreingestellten Kriterien entsprechen.

Beim Verwenden des Ziels Ereignispaarbildung haben Sie die Möglichkeit, zwei Ereignisse, die einander zugeordnet werden, sowie eine Sequenz von Spalten auszuwählen, für die die Zuordnung ausgeführt wird. Alle Spalten in dieser Sequenz müssen den gleichen Typ aufweisen.

In der folgenden Tabelle werden die verfügbaren Optionen für das Konfigurieren der Ereignispaarbildung beschrieben.

Option

Zulässige Werte

Beschreibung

begin_event

Ein beliebiger Ereignisname, der in der aktuellen Sitzung vorhanden ist.

Der Ereignisname, der das Startereignis in einer paarweise zugeordneten Sequenz angibt.

end_event

Ein beliebiger Ereignisname, der in der aktuellen Sitzung vorhanden ist.

Der Ereignisname, der das Endereignis in einer paarweise zugeordneten Sequenz angibt.

begin_matching_columns

Eine durch Trennzeichen getrennte geordnete Liste mit Spaltennamen.

Die Spalten, für die die Zuordnung ausgeführt wird.

end_matching_columns

Eine durch Trennzeichen getrennte geordnete Liste mit Spaltennamen.

Die Spalten, für die die Zuordnung ausgeführt wird.

begin_matching_actions

Eine durch Trennzeichen getrennte, geordnete Liste von Aktionen.

Die Aktionen, für die die Zuordnung ausgeführt wird.

end_matching_actions

Eine durch Trennzeichen getrennte, geordnete Liste von Aktionen.

Die Aktionen, für die die Zuordnung ausgeführt wird.

respond_to_memory_pressure

Einer der folgenden Werte:

  • 0 = Es erfolgt keine Antwort.

  • 1 = Der Liste werden keine neuen verwaisten Objekte hinzugefügt, wenn nicht mehr genügend Arbeitsspeicher vorhanden ist.

Die Antwort des Ziels auf Speicherereignisse. Wenn auf 1 festgelegt, ist auf den Server wenig Arbeitsspeicher verfügbar, und nicht paarweise zugeordnete Informationen, die beibehalten wurden, werden entfernt.

Alle einem Ereignis zugeordneten Daten werden aufgezeichnet und für zukünftige paarweise Zuordnungen gespeichert. Außerdem werden von Aktionen hinzugefügte Daten gesammelt. Die aufgezeichneten Ereignisdaten werden im Arbeitsspeicher gespeichert und verfügen somit über eine feste Begrenzung. Diese Begrenzung basiert auf Systemkapazität und -aktivität. Statt die maximale Arbeitsspeichermenge als Parameter zu verwenden, wird der verwendete Arbeitsspeicher auf Grundlage der verfügbaren Systemressourcen festgelegt. Wenn keine verfügbar sind, werden nicht paarweise zugeordnete Ereignisse, die behalten wurden, gelöscht. Wenn ein Ereignis nicht paarweise zugeordnet wurde und gelöscht wird, wird das übereinstimmende Ereignis als nicht paarweise zugeordnetes Ereignis angezeigt.

Das Ziel Ereignispaarbildung serialisiert nicht paarweise zugeordnete Ereignisse in einem XML-Format. Dieses Format entspricht keinem Schema. Das Format enthält nur zwei Elementtypen. Das <unpaired>-Element ist das Stammelement, gefolgt von einem <event>-Element für jedes nicht zugeordnete Ereignis, das aktuell nachverfolgt wird. Das <event>-Element enthält ein Attribut mit dem Namen des nicht paarweise zugeordneten Ereignisses.

Im folgenden Beispiel wird das Ausgabeformat des Ziels Ereignispaarbildung veranschaulicht.

<unpaired truncated = "0" matchedCount = "[matched count]" memoryPressureDroppedCount = " [lost count]">
    <event name  = "[event name]" package = "[package]" id= "[event ID value]" version = "[event version]">
    <data name = "[column name]"> 
    <type name = "[column type]" package = "[type package]" /> 
    <value>[column value]</value>
    <text value>[text value]</text>>
        </data>
    </event>
</unpaired>

Ziel "Ereignisablaufverfolgung für Windows"

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 Extended Events oder als Extended Events-Ereignisconsumer verwendet. Über die folgenden externen Links erhalten Sie erste Hintergrundinformationen zur ETW:

Extended Events unterstützt die Windows XP- und die Windows Server 2003-Version von 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. Das Extended Events-Modul ist pro Prozess auf eine einzelne Instanz beschränkt.

Wichtiger HinweisWichtig

Das SQL Server-Dienststartkonto muss Mitglied der Gruppe der Leistungsprotokollbenutzer sein, damit das ETW-Ziel funktionieren kann.

Die Konfiguration der Ereignisse in einer ETW-Sitzung wird von einem Prozess gesteuert, in dem das Extended Events-Modul gehostet ist. Das Modul steuert, welche Ereignisse ausgelöst werden und welche Bedingungen erfüllt sein müssen, damit ein Ereignis ausgelöst wird.

Nachdem ein ETW-Ziel an eine Extended Events-Sitzung gebunden wurde, in der das ETW-Ziel zum ersten Mal während der Lebenszeit eines Prozesses angefügt wird, öffnet das ETW-Ziel eine einzelne ETW-Sitzung für den SQL Server-Anbieter. Wenn bereits eine ETW-Sitzung vorhanden ist, erhält das ETW-Ziel einen Verweis auf die vorhandene Sitzung. Diese ETW-Sitzung ist 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 Extended Events-Pakete 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 Steuerung durch externe ETW-Controller, z. B. 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).

HinweisHinweis

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 diese ohne Änderung der Eigenschaften der vorhandenen Sitzung verwendet. XE_DEFAULT_ETW_SESSION wird von 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 Extended Events-Sitzungsname. Standardmäßig ist dies XESESSION0_4B7A5EC6-37EF-4d4c-81EC-13C547B9AC46.

default_etw_session_logfile_path

Eine Zeichenfolge mit bis zu 256 Zeichen. Dieser Wert ist optional.

Der Pfad zur Protokolldatei für die Extended Events-Sitzung. 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 Extended Events-Sitzung. 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 Extended Events-Sitzung. 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. Die Standardeinstellung ist 0.

Die Konfiguration der vorgenannten 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 Extended Events-Pakete bei ETW. So kann sichergestellt werden, dass Ereignisse nicht von ETW gelöscht werden.

  • Verwalten des Ereignisflusses zu ETW. Das ETW-Ziel erstellt ein ETW-Ereignis mit Extended Events-Daten und sendet es an die zugehörige ETW-Sitzung. Wenn das Ereignis die Puffergröße überschreitet oder die Daten für ein ETW-Ereignis zu groß sind, teilt ETW das Ereignis in Fragmente.

  • Ständiges Beibehalten der Aktivierung von Extended Events-Paketen.

Die folgenden Standarddateispeicherorte werden von ETW verwendet:

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

    Wichtiger HinweisWichtig

    Der Dateipfad kann nicht geändert werden, nachdem die erste Sitzung gestartet wurde.

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

Ereignisdateiziel

Das Ereignisdateiziel ist ein asynchrones Ziel, das vollständige Puffer auf Datenträger schreibt. Das Dateiziel erstellt zwei Dateitypen: Protokoll und Metadaten. In der Metadatendatei wird der Ereignisinhalt aus der Zielausgabeprotokolldatei beschrieben. Dadurch ist eine ordnungsgemäße Analyse aller Ereignisse in der Protokolldatei sowie die Analyse der Aktionsdaten, die einem Ereignis zugeordnet sind, möglich.

Um dieses Ziel zu verwenden, müssen Sie den Speicherortnamen der Protokolldatei und der Metadatendatei angeben. Andere Konfigurationsoptionen, z. B. Dateigröße und Zunahmeeigenschaften, sind optional.

In der folgenden Tabelle werden die verfügbaren Optionen zum Konfigurieren des Ereignisdateiziels beschrieben.

Option

Zulässige Werte

Beschreibung

filename

Eine beliebige Zeichenfolge mit bis zu 260 Zeichen. Dieser Wert ist erforderlich.

Der Speicherort und der Dateiname.

Sie können eine beliebige Dateinamenerweiterung verwenden.

max_file_size

Eine beliebige 64-Bit-Ganzzahl. Dieser Wert ist optional.

Die maximale Dateigröße in Megabyte (MB). Wenn max_file_size nicht angegeben ist, kann die Datei so lange anwachsen, bis der Speicherplatz auf dem Datenträger erschöpft ist. Die Standarddateigröße ist 1 GB.

Der Wert für max_file_size muss größer als die aktuelle Größe der Sitzungspuffer sein. Andernfalls wird zurückgegeben, dass max_file_size ungültig ist, und das Dateiziel kann nicht initialisiert werden. Fragen Sie zum Anzeigen der aktuellen Puffergröße die Spalte buffer_size in der dynamischen Verwaltungssicht sys.dm_xe_sessions ab.

Wenn die Standardgröße geringer als die Sitzungspuffergröße ist, sollten Sie für max_file_size den in der Spalte max_memory der Katalogsicht sys.server_event_sessions angegebenen Wert festlegen.

Wenn für max_file_size ein höherer Wert als für die Sitzungspuffer definiert ist, wird dieses möglicherweise auf das nächstkleinere Vielfache der Sitzungspuffergröße abgerundet. Hierdurch wird eine Zieldatei erzeugt, die kleiner als der für max_file_size angegebene Wert ist. Beispiel: Wenn die Puffergröße 100 MB beträgt und für max_file_size 150 MB festgelegt ist, wird die resultierende Dateigröße auf 100 MB abgerundet, da in die verbleibenden 50 MB kein zweiter Puffer passen würde.

Wenn die Standarddateigröße kleiner als die Sitzungspuffergröße ist, sollten Sie für max_file_size den Wert in der Spalte max_memory der Katalogsicht sys.server_event_sessions festlegen.

max_rollover_files

Eine beliebige 32-Bit-Ganzzahl. Dieser Wert ist optional.

Die maximale Anzahl von Dateien, die im Dateisystem beibehalten werden.

increment

Eine beliebige 32-Bit-Ganzzahl. Dieser Wert ist optional.

Die inkrementelle Zunahme für die Datei in Megabyte (MB). Falls der Wert für increment nicht angegeben wurde, wird als Standardwert das Doppelte der Sitzungspuffergröße verwendet.

metadatafile

Eine beliebige Zeichenfolge mit bis zu 260 Zeichen. Dieser Wert ist erforderlich.

Der Speicherort und der Name der Metadaten für die Datei.

Wenn ein Dateiziel zum ersten Mal erstellt wird, wird an den Dateinamen 0 und ein langer ganzzahliger Wert angefügt. Der ganzzahlige Wert entspricht der Anzahl von Millisekunden zwischen dem 1. Januar 1600 und dem Datum sowie der Uhrzeit der Dateierstellung. Nachfolgende Rolloverdateien verwenden ebenfalls dieses Format. Anhand des langen ganzzahligen Werts können Sie die neueste Datei ermitteln. Das folgende Beispiel veranschaulicht, wie Dateien in einem Szenario benannt werden, in dem die Option für den Dateinamen als C:\OutputFiles\MyOutput.xel angegeben wird:

  • Erste erstellte Datei: C:\OutputFiles\MyOutput_0_128500310259380000.xel

  • Erste Rolloverdatei: C:\OutputFiles\MyOutput_0_128505831770890000.xel

  • Zweite Rolloverdatei: C:\OutputFiles\MyOutput_0_132410772966237000.xel

Synchrones Ereigniszählerziel

Das synchrone Ereigniszählerziel zählt alle Ereignisse, die während einer Extended Events-Sitzung ausgelöst werden. Mithilfe des synchronen Ereigniszählerziels erhalten Sie Informationen über Merkmale der Arbeitsauslastung ohne den Aufwand einer vollständigen Ereignisauflistung. Dieses Ziel verfügt nicht über anpassbare Parameter.

Im folgenden Beispiel wird die Ausgabe des synchronen Ereigniszählerziels veranschaulicht.

<CounterTarget truncated = "0">
  <Packages>
    <Package name = "[package name]">
      <Event name = "[event name]" count = "[number]" />
    </Package>
  </Packages>
</CounterTarget>

Ringpufferziel

Das Ringpufferziel speichert kurzzeitig Ereignisdaten im Arbeitsspeicher. Dieses Ziel kann Ereignisse in einem von zwei Modi verwalten.

  • Bei dem ersten Modus handelt es sich um eine strikte FIFO-Reihenfolge (First-In-First-Out), bei der das älteste Ereignis verworfen wird, wenn der gesamte dem Ziel zugeordnete Arbeitsspeicher verwendet wurde. In diesem Modus (dem Standardmodus) wird die Option "occurrence_number" auf 0 festgelegt.

  • Der zweite Modus ist eine FIFO-Reihenfolge pro Ereignis, bei der eine festgelegte Anzahl von Ereignissen jedes Typs aufbewahrt wird. In diesem Modus werden die ältesten Ereignisse des jeweiligen Typs verworfen, wenn der gesamte dem Ziel zugeordnete Arbeitsspeicher verwendet wurde. Sie können die Option "occurrence_number" so konfigurieren, dass die Anzahl der für jeden Typ beizubehaltenden Ereignisse angegeben wird.

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

Option

Zulässige Werte

Beschreibung

default_memory

Eine beliebige 32-Bit-Ganzzahl. Dieser Wert ist optional.

Die Höchstmenge des verfügbaren Arbeitsspeichers in Kilobyte (KB). Vorhandene Ereignisse werden gelöscht, wenn dieser Wert erreicht wird.

occurrence_number

Einer der folgenden Werte:

  • 0 (Standard) = Das älteste Ereignis wird verworfen, wenn der gesamte dem Ziel zugeordnete Arbeitsspeicher verwendet wurde.

  • Eine beliebige 32-Bit-Ganzzahl = Die Anzahl der für jeden Typ beizubehaltenden Ereignisse, bevor sie in FIFO-Reihenfolge pro Ereignis verworfen werden.

Dieser Wert ist optional.

Der zu verwendende FIFO-Modus. Wenn dieser auf einen Wert größer als 0 festgelegt ist, die gewünschte Anzahl von Ereignissen, die für jeden Typ im Puffer gespeichert werden sollen.

Das folgende Beispiel veranschaulicht die Ausgabe des Ringpufferziels.

<RingBufferTarget eventsPerSec="" processingTime="" totalEventsProcessed="" eventCount="" droppedCount="" memoryUsed="">
 <event name="" package="" id="" version="" timestamp="">
    <data name="">
      <type name="" package="" />
      <value></value>
      <text></text>
    </data>
    <action name="" package="">
      <type name="" package="" />
      <value></value>
      <text></text>
    </action>
  </event>
</RingBufferTarget>