SQL Server扩展事件没有较新的事件

Afr*_*roz 3 sql-server-2008 extended-events

我正在查询system_health会话并注意到并非所有事件都被返回.今天肯定没有什么死锁,但这些并不在输出中.

我遇到了这个连接文件但是从评论中已经在SQL Server 2008 SP2中解决了这个问题.但我的版本是SQL Server 2008 SP3 Standard.这里有一些更多的细节.

这是一个Bug还是我查错了?

<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
Run Code Online (Sandbox Code Playgroud)

Jon*_*ias 5

它可能都不是,因为你仍然可以使用4MB的ring_buffer配置来达到8MB的XML限制,这是默认的max_memory.你也可能在扩展事件中遇到一个不同的错误,这个错误导致我的博客在这里错误地报告时间戳:

扩展事件中事件的时间戳不正确

了解您遇到的场景的唯一方法是将collect_system_time的操作添加到会话中的事件,并将文件目标添加到会话中以捕获不受DMV限制的媒体中的所有事件是.我要指出的是,在SQL Server 2012中,system_health会话默认配置了file_target,所以在2008年这样做是明智的IMO.