Расширенные события SQL Server не имеют более новых событий

Я запрашиваю сеанс system_health и заметил, что не все события возвращаются. Сегодня определенно было несколько тупиков, но их нет в выводе.

Я сталкивался с этой регистрацией соединения, но из комментариев проблема была обращена в SQL Server 2008 SP2. Но моя версия - SQL Server 2008 SP3 Standard. Вот еще несколько деталей.

Так это ошибка или я не так?

<RingBufferTarget truncated="1" eventsPerSec="31291" processingTime="209" totalEventsProcessed="6540" eventCount="1947" droppedCount="0" memoryUsed="4193813">


SELECT  TOP 1 e.event.value('(@timestamp)[1]','datetime') AS MaxDate, GETDATE() Today
FROM 
( SELECT ( SELECT 
        CONVERT(xml, target_data) 
        FROM sys.dm_xe_session_targets st 
        JOIN sys.dm_xe_sessions s ON 
        s.address = st.event_session_address 
        WHERE s.name = 'system_health' 
        AND st.target_name = 'ring_buffer' 
        )AS [x] 
        FOR XML PATH(''), TYPE 
) AS the_xml(x) 
CROSS APPLY x.nodes('x/RingBufferTarget/event') e (event) 
ORDER BY MaxDate DESC

MaxDate                     Today
2013-01-09 20:05:31.853     2013-01-11 15:22:37.887

1 ответ

Решение

Это возможно ни то, ни другое, поскольку вы все равно можете преодолеть ограничение 8 МБ XML с помощью конфигурации 4_ МБ ring_buffer для max_memory, которая используется по умолчанию. Вы также можете столкнуться с другой ошибкой в ​​расширенных событиях, из-за которой метка времени сообщается неверно, о которой я писал здесь:

Неверная отметка времени для событий в расширенных событиях

Единственный способ узнать, в каком сценарии вы работаете, - это добавить действие для collect_system_time к событиям в сеансе, а также добавить целевой файл в сеанс для захвата всех событий на носителе, который не ограничен, например, DMV. является. Я хотел бы отметить, что в SQL Server 2012 в сеансе system_health настроен файл file_target по умолчанию, поэтому в 2008 году было бы целесообразно выполнить IMO.

Другие вопросы по тегам