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