リング バッファー ターゲット

リング バッファー ターゲットは、メモリにイベント データを一時的に保持します。 このターゲットでは、2 種類のモードのいずれかでイベントを管理できます。

  • 1 つ目のモードは厳密な先入れ先出し (FIFO) です。このモードでは、ターゲットに割り当てられたメモリがすべて使用されると、最も古いイベントが破棄されます。 このモード (既定値) では、occurrence_number オプションは 0 に設定されます。

  • 2 つ目のモードはイベントごとの FIFO です。このモードでは、各種イベントが指定した数だけ保持されます。 ターゲットに割り当てられたメモリがすべて使用されると、それぞれの種類の中で最も古いイベントが破棄されます。 occurrence_number オプションを構成して、種類ごとに保持するイベントの数を指定できます。

次の表では、リング バッファー ターゲットの構成に使用できるオプションについて説明します。

オプション

指定できる値

説明

max_memory

任意の 32 ビット整数。 この値は省略可能です。

使用するメモリの最大量 (KB)。 max_event_limit と max_memory のうち先に制限に達した方に基づいて、既存のイベントが削除されます。

max_event_limit

任意の 32 ビット整数。 この値は省略可能です。

ring_buffer に保持されるイベントの最大数。 max_event_limit と max_memory のうち先に制限に達した方に基づいて、既存のイベントが削除されます。 既定値は 1000 です。

occurrence_number

次の値のいずれかになります。

  • 0 (既定値) = ターゲットに割り当てられたメモリがすべて使用されると、最も古いイベントが破棄されます。

  • 任意の 32 ビット整数値 = イベントごとの FIFO に基づいて破棄されるまで、種類ごとに保持するイベントの数。

この値はオプションです。

使用する FIFO モード。0 を超える値に設定した場合は、種類ごとにバッファーに保持するイベントの数を表します。

セッションへのターゲットの追加

リング バッファー ターゲットを拡張イベント セッションに追加するには、イベント セッションの作成時または変更時に次のステートメントを含める必要があります。

ADD TARGET package0.ring_buffer

ターゲット出力の確認

リング バッファー ターゲットの出力を確認するには、次のクエリを使用します。session_name をイベント セッションの名前に置き換えてください。

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'

次の例は、リング バッファー ターゲットの出力形式を示しています。

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

関連項目

参照

sys.dm_xe_session_targets (Transact-SQL)

CREATE EVENT SESSION (Transact-SQL)

ALTER EVENT SESSION (Transact-SQL)

概念

SQL Server 拡張イベント ターゲット