Durata dell'evento estesa Millisecondo o Microsecondo?


15

In questo forum c'era una domanda module_endsull'unità di durata degli eventi estesi , alla quale ho risposto. Dettagli qui .

È sempre in microsecondi per tutti gli eventi?

Risposte:


30

È 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.

inserisci qui la descrizione dell'immagine

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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.