이 포럼에서 확장 이벤트 module_end
기간 단위 에 대한 질문에 답변했습니다. 자세한 내용은 여기를 참조하십시오 .
모든 이벤트에 대해 항상 마이크로 초입니까?
이 포럼에서 확장 이벤트 module_end
기간 단위 에 대한 질문에 답변했습니다. 자세한 내용은 여기를 참조하십시오 .
모든 이벤트에 대해 항상 마이크로 초입니까?
답변:
Millisecond, Microsecond의 혼합이며 일부는 알려져 있지 않습니다. 가장 쉬운 방법은 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에 대해 동일한 쿼리를 실행했으며 미래에도 같은 혼란을 겪을 것이라고 확인했습니다.