【问题标题】:Retrieve Timestamp of Deadlock in Extended Events Session Ring Buffer在扩展事件会话环缓冲区中检索死锁的时间戳
【发布时间】:2013-07-22 21:52:51
【问题描述】:

我正在尝试查询system_health 扩展事件环形缓冲区以查找死锁事件。到目前为止,我已经得到了如下所示的死锁图。我对缺乏参考表示歉意;我丢失了找到此查询的页面:

SELECT 
    CAST(event_data.value('(event/data/value)[1]', 'nvarchar(max)') AS XML) AS DeadlockGraph
FROM 
(   SELECT XEvent.query('.') AS event_data 
    FROM 
    (   -- Cast the target_data to XML 
        SELECT CAST(target_data AS XML) AS TargetData 
        FROM sys.dm_xe_session_targets AS st 
        INNER JOIN sys.dm_xe_sessions AS s 
            ON s.address = st.event_session_address 
        WHERE name = N'system_health' 
          AND target_name = N'ring_buffer' 
    ) AS Data 
    -- Split out the Event Nodes 
    CROSS APPLY TargetData.nodes ('RingBufferTarget/event[@name="xml_deadlock_report"]') AS XEventData (XEvent)   
) AS tab (event_data);

我还想为这些事件的时间戳添加一列。如果我运行内部查询,我会看到事件的时间戳在事件本身的 XML 中:

<event name="xml_deadlock_report"
    package="sqlserver" id="123" version="1"
    timestamp="2013-07-23T16:25:25.495Z">

如何解析并显示此时间戳?我使用 TSQL 解析 XML 的经验有限。

我试过这个:

SELECT
    CAST(event_data.value('/@timestamp', 'nvarchar(500)') AS datetime) AS [time],
    CAST(event_data.value('(event/data/value)[1]', 'nvarchar(max)') AS XML) AS DeadlockGraph

但我得到了错误:

消息 2390,级别 16,状态 1,行 2 XQuery [tab.event_data.value()]: 不支持顶级属性节点

这个:

CAST(event_data.value('(event/@timestamp)', 'nvarchar(500)') AS datetime) AS [time],

产生此错误:

消息 2389,级别 16,状态 1,行 2 XQuery [tab.event_data.value()]: 'value()' 需要一个单例(或空序列),找到的操作数 输入'xdt:untypedAtomic *'

【问题讨论】:

    标签: sql sql-server deadlock extended-events


    【解决方案1】:

    改变这个

    CAST(event_data.value('(event/@timestamp)', 'nvarchar(500)') AS datetime) AS [time],
    

    有了这个

    SELECT 
        event_data.value('(/event/@timestamp)[1]','VARCHAR(50)') AS TS1,
        event_data.value('(/event/@timestamp)[1]','DATETIMEOFFSET') AS TS2,
        ...
    

    结果:

    TS1                      TS2                               
    ------------------------ ----------------------------------
    2013-07-23T17:49:46.072Z 2013-07-23 17:49:46.0720000 +00:00
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多