In diesem Forum gab es eine Frage zu Extended Event module_end
duration unit, die ich beantwortet habe. Details hier .
Ist es immer in Mikrosekunden für alle Ereignisse?
In diesem Forum gab es eine Frage zu Extended Event module_end
duration unit, die ich beantwortet habe. Details hier .
Ist es immer in Mikrosekunden für alle Ereignisse?
Antworten:
Es ist eine Mischung aus Millisekunden, Mikrosekunden und einige sind unbekannt. Der einfachste Weg, um zu finden, habe ich unter tsql-Code verwendet, um zu bestimmen, welche was ist.
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'
Hier ist die Ergebnismenge eines SQL 2016 SP1-Servers. Ich poste nur einen Teil davon. In der Spalte DurationUnit sehen Sie 3 verschiedene Werte.
Für NULL finde ich die beste Option, zu laufen (wenn möglich mit Start- und Endzeit) und herauszufinden, was die Einheit ist.
Ich habe dieselbe Abfrage für vnext SQL Server ausgeführt und bestätigt, dass wir die gleiche Verwirrung in die Zukunft tragen werden.