Enhet för duration i extended event


Tag : SQL,SQL Server

Om du sitter med extended events och vill filtrera på duration alternativt bara vet hur lång tid en fråga tar så visar det här scriptet vilken tidsenhet de olika kategorierna har.

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' 

About

Det här är min digitala anteckningsbok för allt som har med databaser, automatisering och teknik att göra.
Här samlar jag alla de där skripten, lösningarna och knepen jag byggt på mig under åren – främst inom SQL Server och PowerShell.
Istället för att de ska ligga och damma i en glömd mapp delar jag med mig av dem här, så att både jag själv (när minnet sviker) och du förhoppningsvis kan spara några timmars klickande.