次の方法で共有


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

リング バッファー ターゲットは、メモリにイベント データを一時的に保持します。 このターゲットでは、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>  

参照