このフォーラムで拡張イベントについての質問がありましたmodule_end
継続時間の単位。詳細 こちら 。
すべてのイベントで常にマイクロ秒単位ですか?
それはミリ秒、マイクロ秒の混合であり、いくつかは不明です。何が何であるかを判断するために以下のtsqlコードを使用して見つける最も簡単な方法。
SELECT p.name package_name,
o.name event_name,
c.name event_field,
DurationUnit= CASE
WHEN c.description LIKE '%milli%'
THEN SUBSTRING(c.description, CHARINDEX('milli', c.description),12)
WHEN c.description LIKE '%micro%'
THEN SUBSTRING(c.description, CHARINDEX('micro', c.description),12)
ELSE NULL
END,
c.type_name field_type,
c.column_type column_type
FROM sys.dm_xe_objects o
JOIN sys.dm_xe_packages p ON o.package_guid = p.guid
JOIN sys.dm_xe_object_columns c ON o.name = c.object_name
WHERE o.object_type = 'event'
AND c.name ='duration'
以下は、SQL 2016 SP1サーバーからの結果セットです。投稿は一部のみです。 DurationUnit列を見ると、3つの異なる値が表示されています。
NULLの場合は、実行して(可能であれば開始時刻と終了時刻で)、ユニットが何であるかを見つけるのが最善の方法です。
私はvnext SQL Serverに対して同じクエリを実行しましたが、将来も同じ混乱が生じることを確認しました。