Freigeben über


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 Standard) ist die occurrence_number -Option 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, um die Anzahl der Ereignisse anzugeben, die für die einzelnen Typen beizubehalten sind.

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

Option

Zulässige Werte

Beschreibung

max_memory

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

Die Höchstmenge des verfügbaren Arbeitsspeichers in Kilobyte (KB). Vorhandene Ereignisse werden auf Grundlage der Grenze gelöscht, die zuerst erreicht wird: max_event_limit oder max_memory.

max_event_limit

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

Die maximale Anzahl von Ereignissen, die in ring_buffer behalten wurden. Vorhandene Ereignisse werden auf Grundlage der Grenze gelöscht, die zuerst erreicht wird: max_event_limit oder max_memory. Standardeinstellung = 1000.

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.

Hinzufügen des Ziels zu einer Sitzung

Wenn Sie das Ringpufferziel 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.ring_buffer

Überprüfen der Zielausgabe

Sie können die Ausgabe des Ringpufferziels mithilfe der folgenden Abfrage überprüfen und dabei session_name durch den Namen der Ereignissitzung ersetzen.

SELECT name, target_name, CAST(xet.target_data AS xml)
FROM sys.dm_xe_session_targets AS xet
JOIN sys.dm_xe_sessions AS xe
   ON (xe.address = xet.event_session_address)
WHERE xe.name = 'session_name'

Im folgenden Beispiel wird das Ausgabeformat des Ringpufferziels veranschaulicht.

<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>

Siehe auch

Verweis

sys.dm_xe_session_targets (Transact-SQL)

CREATE EVENT SESSION (Transact-SQL)

ALTER EVENT SESSION (Transact-SQL)

Konzepte

Ziele für erweiterte Ereignisse von SQL Server