2013-01-11 32 views
3

我查询system_health会议,并注意到,不是所有的事件都被退回。今天肯定有很少的死锁,但这些不在输出中。SQL Server扩展事件没有新的事件

我碰到this connect filing但是从问题已在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 

回答

5

它可能两者都不是,因为你仍然可以打8MB XML的限制与MAX_MEMORY一个4MB ring_buffer配置这是默认的。你也可能会击中扩展事件,使时间戳不同的错误被错误报道,我的博客上讲述这里:

Incorrect Timestamp on Events in Extended Events

知道你正在运行的情况下进入是加入行动的唯一途径将collect_system_time添加到会话中的事件中,并将文件目标添加到会话中以捕获媒体中的所有事件,这些媒体不受DMV限制。我会指出,在SQL Server 2012中,system_health会话默认配置了file_target,所以在2008年这样做将是明智的IMO。