Увеличенная длительность события Миллисекунда или Микросекунда?

15

На этом форуме был вопрос о module_endпродолжительности расширенного события , на который я ответил. Подробности здесь .

Это всегда в микросекундах для всех событий?

SqlWorldWide
источник

Ответы:

30

Это смесь Миллисекунды, Микросекунды и некоторые из них неизвестны. Самый простой способ найти, я использовал ниже 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 и подтвердил, что мы будем продолжать в том же духе.

SqlWorldWide
источник