SQL Server › SQL Server Profiler & Extended Events

How do you analyze the data captured by an Extended Events session once it has been running for a period of time?

Intermediate

Answer

You can open the event file target directly in SQL Server Management Studio, which provides a graphical interface for viewing and filtering the captured events, or query the file programmatically using the sys.fn_xe_file_target_read_file function to extract the data into a table format for more detailed custom analysis.
SELECT event_data.value('(event/@timestamp)[1]', 'datetime2') AS EventTime,
       event_data.value('(event/data[@name="duration"]/value)[1]', 'bigint') AS Duration
FROM sys.fn_xe_file_target_read_file('LongQueries*.xel', NULL, NULL, NULL)
CROSS APPLY (SELECT CAST(event_data AS XML) AS event_data) AS ed;
Real-world example A performance analyst extracts captured Extended Events data into a queryable table format, allowing them to run aggregate calculations and identify patterns across thousands of captured slow query events.

Common follow-ups: Why is the captured data stored in an XML format?;What tools besides SQL Server Management Studio can be used to analyze Extended Events data?