2013-01-11 31 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。