Цель «Кольцевой буфер»

Цель «Кольцевой буфер» кратковременно хранит данные о событиях в памяти. Данная цель может управлять событиями в одном из двух режимов.

  • Первый режим — это режим, «первым поступил — первым обслужен» (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

Одно из следующих значений.

  • 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