Il y avait une question dans ce forum à propos de Événement étendu module_end
unité de durée, à laquelle j'ai répondu. Détails ici .
Est-ce toujours en microsecondes pour tous les événements?
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.
Pour les valeurs NULL, je trouve que la meilleure option est d'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.