Destino de búfer de anillo
El destino de búfer de anillo guarda datos de eventos en la memoria durante un corto espacio de tiempo. Este destino puede administrar los eventos de uno de los dos modos siguientes.
El primer modo es un orden FIFO (First In, First Out; primero en entrar, primero en salir) estricto, en el que el evento más antiguo se descarta cuando se usa toda la memoria asignada al destino. En este modo (valor predeterminado), la opción occurrence_number se establece en 0.
El segundo modo es un orden FIFO por evento, en el que se conserva un número determinado de eventos de cada tipo. En este modo, los eventos más antiguos de cada tipo se descartan cuando se usa toda la memoria asignada al destino. Puede configurar la opción occurrence_number para especificar el número de eventos de cada tipo que se desea conservar.
En la tabla siguiente se describen las opciones disponibles para configurar el destino de búfer de anillo.
Opción | Valores permitidos | Descripción |
---|---|---|
max_memory | Cualquier entero de 32 bits. Este valor es opcional. | La cantidad de memoria máxima en kilobytes (kB) que se va a usar. Los eventos existentes se quitan en función del límite que se alcance primero: max_event_limit o max_memory. El valor máximo es 4194303 KB. Se debe tener en cuenta detenidamente antes de establecer el tamaño del búfer de anillo en los límites del intervalo de GB, ya que puede afectar a otros consumidores de memoria en SQL Server |
max_event_limit | Cualquier entero de 32 bits. Este valor es opcional. | El número máximo de eventos que se mantiene en el búfer en anillo. Los eventos existentes se quitan en función del límite que se alcance primero: max_event_limit o max_memory. Valor predeterminado = 1000. |
occurrence_number | Uno de los siguientes valores: 0 (valor predeterminado) = El evento más antiguo se descarta cuando se usa toda la memoria asignada al destino. Cualquier entero de 32 bits = El número de eventos de cada tipo que se deben mantener antes de descartarse por evento FIFO. Este valor es opcional. |
Modo FIFO que se va a usar y, si se establece en un valor mayor que 0, el número preferido de eventos de cada tipo que se desea conservar en el búfer. |
Agregar el destino a una sesión
Para agregar el destino del búfer de anillo a una sesión de eventos extendidos, debe incluir la siguiente instrucción al crear o modificar una sesión de eventos:
ADD TARGET package0.ring_buffer
Revisar la salida del destino
Para revisar la salida del destino de búfer de anillo, puede usar la siguiente consulta, reemplazando session_name por el nombre de la sesión de eventos.
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'
En el siguiente ejemplo se muestra el formato de salida del destino de búfer de anillo.
<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>