링 버퍼 대상
간단히 말해 링 버퍼 대상은 메모리에 이벤트 데이터를 보관합니다. 이 대상은 다음 두 모드 중 하나로 이벤트를 관리할 수 있습니다.
첫째 모드는 엄격한 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 |
다음 값 중 하나입니다.
이 값은 선택 사항입니다. |
사용할 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)