Цель «Кольцевой буфер»
Цель «Кольцевой буфер» кратковременно хранит данные о событиях в памяти. Данная цель может управлять событиями в одном из двух режимов.
Первый режим — это режим, «первым поступил — первым обслужен» (FIFO), когда при заполнении всей памяти, выделенной цели, теряется событие, которое было добавлено первым. В данном режиме (режим по умолчанию) параметр occurrence_number имеет значение 0.
Второй режим — это режим FIFO по видам событий, в котором хранится только определенное число событий каждого типа. В этом режиме при заполнении всей памяти, выделенной цели, удаляются самые старые события каждого типа. Параметр occurrence_number можно изменить, чтобы указать количество событий каждого типа, которые следует сохранять.
В следующей таблице приведены доступные параметры для настройки цели «Кольцевой буфер».
Параметр |
Допустимые значения |
Описание |
---|---|---|
max_memory |
Любое 32-разрядное целое число. Это значение является необязательным. |
Максимальный объем памяти в килобайтах (КБ), который будет использован. Существующие события удаляются в соответствии с первым достигнутым ограничением — 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)