環緩衝區目標

信號緩衝區目標會短暫地將事件資料保留在記憶體中, 此目標可以在兩個模式的其中一個之下管理事件。

  • 第一個模式是嚴格的先進先出 (FIFO),當使用配置給目標的所有記憶體時,將會捨棄最舊的事件。 在此模式 (預設值) 中,occurrence_number 選項設定為 0。

  • 第二個模式是依事件的 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 擴充的事件目標