【问题标题】:SQL Server Extended Events doesn't have the newer eventsSQL Server 扩展事件没有较新的事件
【发布时间】:2012-12-26 13:26:23
【问题描述】:

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

我遇到了this connect filing,但从 cmets 来看,该问题已在 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

【问题讨论】:

    标签: sql-server-2008 extended-events


    【解决方案1】:

    可能两者都不是,因为您仍然可以通过 max_memory 的 4MB ring_buffer 配置达到 8MB XML 限制,这是默认设置。您还可能在扩展事件中遇到了一个不同的错误,该错误导致时间戳被错误地报告,我在这里写过博客:

    Incorrect Timestamp on Events in Extended Events

    了解您正在运行的场景的唯一方法是将 collect_system_time 的操作添加到会话中的事件中,并将文件目标添加到会话中以捕获不受限制的媒体中的所有事件就像 DMV 一样。我要指出的是,在 SQL Server 2012 中,system_health 会话默认配置了 file_target,因此建议在 2008 年执行此操作。

    【讨论】:

      猜你喜欢
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      • 2012-10-28
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多