3

system_health セッションを照会していますが、すべてのイベントが返されていないことに気付きました。今日は間違いなくデッドロックはほとんどありませんでしたが、これらは出力に含まれていません。

この接続ファイリングに遭遇しましたが、コメントから、問題は 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
4

1 に答える 1

5

デフォルトである max_memory の 4MB の ring_buffer 構成で 8MB の XML 制限に達する可能性があるため、どちらでもない可能性があります。また、タイムスタンプが誤って報告される拡張イベントの別のバグに遭遇している可能性もあります。

拡張イベントのイベントのタイムスタンプが正しくない

実行中のシナリオを知る唯一の方法は、セッション内のイベントに collect_system_time のアクションを追加し、ファイル ターゲットをセッションに追加して、DMV のように制限されていないメディア内のすべてのイベントをキャプチャすることです。は。SQL Server 2012 では、system_health セッションに file_target がデフォルトで設定されているため、2008 年にこれを行うことが IMO として推奨されることを指摘しておきます。

于 2013-01-14T20:46:06.050 に答える