Durée d'événement étendue Milliseconde ou Microseconde?


15

Il y avait une question dans ce forum sur l' module_endunité de durée de l' événement étendu , à laquelle j'ai répondu. Détails ici .

Est-ce toujours en microsecondes pour tous les événements?

Réponses:


30

C'est un mélange de millisecondes, microsecondes et certains sont inconnus. Le moyen le plus simple de trouver J'ai utilisé le code tsql ci-dessous pour déterminer ce qui est quoi.

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'

Voici le jeu de résultats d'un serveur SQL 2016 SP1. Je n'en poste qu'une partie. Regardez la colonne DurationUnit et vous pouvez voir 3 valeurs différentes.

entrez la description de l'image ici

Pour les valeurs NULL, je trouve que la meilleure option consiste à exécuter (si possible avec l'heure de début et de fin) et de trouver l'unité.

J'ai exécuté la même requête contre vnext SQL Server et confirmé que nous porterons la même confusion à l'avenir.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.