다음을 통해 공유


링 버퍼 대상

간단히 말해 링 버퍼 대상은 메모리에 이벤트 데이터를 보관합니다. 이 대상은 다음 두 모드 중 하나로 이벤트를 관리할 수 있습니다.

  • 첫째 모드는 엄격한 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 확장 이벤트 대상