Profiler ile yakaladığımız trace'lerin daha kapsamlı ve daha az eforla alınması için SQL Server 2008 ile birlikte Extended Events'ler geldi. Extended Events ile topladığınız verileri dosyadan sys.fn_xe_file_target_read_file() fonksiyonu ile okuyabilirsiniz. Benim işime yarayan bazı değerleri aşağıdaki gibi aldım. Siz isterseniz ihtiyacınıza göre değiştirebilirsiniz.
SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), CURRENT_TIMESTAMP), xevents.event_data.value('(event/@timestamp)[1]', 'datetime2')) AS [EventTime] ,
xevents.event_data.value('(event/action[@name="database_name"]/value)[1]', 'nvarchar(max)') AS [DatabaseName],
xevents.event_data.value('(event/data[@name="duration"]/value)[1]', 'bigint') /1000 AS [DurationMS],
xevents.event_data.value('(event/data[@name="cpu_time"]/value)[1]', 'bigint') AS [CPUTimeMs],
xevents.event_data.value('(event/data[@name="logical_reads"]/value)[1]', 'bigint') AS [LogicalReads],
xevents.event_data.value('(event/data[@name="row_count"]/value)[1]', 'bigint') AS [RowCount],
xevents.event_data.value('(event/data[@name="statement"]/value)[1]', 'nvarchar(max)') AS [Statement]
FROM sys.fn_xe_file_target_read_file('Path\FileName*.xel',null, null, null)
CROSS APPLY (select CAST(event_data as XML) as event_data) as xevents
Hiç yorum yok:
Yorum Gönder