リング バッファー ターゲット
リング バッファー ターゲットは、メモリにイベント データを一時的に保持します。 このターゲットでは、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 |
次の値のいずれかになります。
この値はオプションです。 |
使用する 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)