In questo forum c'era una domanda module_end
sull'unità di durata degli eventi estesi , alla quale ho risposto. Dettagli qui .
È sempre in microsecondi per tutti gli eventi?
In questo forum c'era una domanda module_end
sull'unità di durata degli eventi estesi , alla quale ho risposto. Dettagli qui .
È sempre in microsecondi per tutti gli eventi?
Risposte:
È un mix di millisecondi, microsecondi e alcuni sono sconosciuti. Il modo più semplice per trovare ho usato sotto il codice tsql per determinare quale è cosa.
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'
Ecco il set di risultati da un server SQL 2016 SP1. Ne invio solo una parte. Guarda la colonna DurationUnit e puoi vedere 3 valori diversi.
Per quelli NULL trovo che l'opzione migliore sia quella di eseguire (se possibile con l'ora di inizio e di fine) e trovare l'unità.
Ho eseguito la stessa query su SQL Server vnext e confermato che porteremo la stessa confusione in futuro.