リング バッファー ターゲット
リング バッファー ターゲットは、メモリにイベント データを一時的に保持します。 このターゲットでは、2 種類のモードのいずれかでイベントを管理できます。
1 つ目のモードは厳密な先入れ先出し (FIFO) です。このモードでは、ターゲットに割り当てられたメモリがすべて使用されると、最も古いイベントが破棄されます。 このモード (既定値) では、occurrence_number オプションは 0 に設定されます。
2 つ目のモードはイベントごとの FIFO です。このモードでは、各種イベントが指定した数だけ保持されます。 このモードでは、ターゲットに割り当てられたすべてのメモリが使用されると、各型の最も古いイベントが破棄されます。 occurrence_number オプションを構成して、種類ごとに保持するイベントの数を指定できます。
次の表では、リング バッファー ターゲットの構成に使用できるオプションについて説明します。
オプション | 使用できる値 | 説明 |
---|---|---|
max_memory | 任意の 32 ビット整数。 この値は省略可能です。 | 使用するメモリの最大量 (KB)。 max_event_limit と max_memory のうち先に制限に達した方に基づいて、既存のイベントが削除されます。 最大値は KB 4194303です。 リング バッファー サイズを GB 範囲の制限に設定する前に、SQL Serverの他のメモリ コンシューマーに影響を与える可能性があるため、慎重に検討する必要があります |
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>