Расширенные события 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.