Compartilhar via


Destino de buffer de anel

O destino de buffer de anel mantém brevemente dados de eventos na memória. Esse destino pode gerenciar eventos de uma das duas maneiras possíveis.

  • O primeiro modo é basicamente o FIFO (primeiro a entrar, primeiro a sair), no qual o evento mais antigo é descartado quando toda a memória alocada ao destino é usada. Neste modo (o padrão), a opção occurrence_number está definida como 0.

  • O segundo modo é o FIFO por evento, no qual um número especificado de eventos de cada tipo é mantido. Nesse modo, os eventos mais antigos de cada tipo são descartados quando toda a memória alocada ao destino é usada. Você pode configurar a opção occurrence_number para especificar o número de eventos de cada tipo a ser mantido.

A tabela a seguir descreve as opções disponíveis para configurar o destino de buffer de anel.

Opção

Valores permitidos

Descrição

max_memory

Qualquer inteiro de 32 bits. Esse valor é opcional.

A quantidade máxima de memória, em kilobytes (KB), para usar. Os eventos existentes são descartados com base no limite atingido primeiro: max_event_limit ou max_memory.

max_event_limit

Qualquer inteiro de 32 bits. Esse valor é opcional.

O número máximo de eventos mantidos no ring_buffer. Os eventos existentes são descartados com base no limite atingido primeiro: max_event_limit ou max_memory. Padrão = 1000.

occurrence_number

Um dos valores a seguir:

  • 0 (o padrão) = O evento mais antigo é descartado quando toda a memória alocada ao destino é usada.

  • Qualquer inteiro de 32 bits = O número de eventos de cada tipo a ser mantido antes de ser descartado em uma base FIFO por evento.

Esse valor é opcional.

O modo FIFO a ser usado e, se definido com um valor maior que 0, o número preferencial de eventos de cada tipo a ser mantido no buffer.

Adicionando o destino a uma sessão

Para adicionar o destino de buffer de anel a uma sessão de Eventos Estendidos, você deve incluir a instrução a seguir ao criar ou alterar uma sessão de evento:

ADD TARGET package0.ring_buffer

Revisando a saída de destino

Para examinar o destino do buffer de anel, você pode usar a consulta a seguir substituindo session_name pelo nome da sessão de evento.

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'

O exemplo a seguir mostra o formato de saída do destino do buffer de anel.

<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>

Consulte também

Referência

sys.dm_xe_session_targets (Transact-SQL)

CREATE EVENT SESSION (Transact-SQL)

ALTER EVENT SESSION (Transact-SQL)

Conceitos

Destinos de eventos estendidos do SQL Server