Розширена тривалість події Мільсекунда або Мікросекунда?


15

На цьому форумі виникло питання про module_endодиницю тривалої події , на яку я відповів. Деталі тут .

Чи завжди це в мікросекундах для всіх подій?

Відповіді:


31

Це суміш Мільсекунди, Мікросекунди, а деякі - невідомі. Найпростіший спосіб знайти я використовував нижче код tsql, щоб визначити, що є чим.

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'

Ось набір результатів із сервера SQL 2016 SP1. Я лише розміщую її частину. Подивіться на стовпець DurationUnit, і ви зможете побачити 3 різних значення.

введіть тут опис зображення

Для NULL тих, хто вважає найкращим варіантом, є запустити (якщо можливо, час початку та закінчення) та знайти, що таке одиниця.

Я запустив той же запит проти vnext SQL Server і підтвердив, що ми будемо мати таку плутанину в майбутньому.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.