SQL Server中使用扩展事件捕捉所需的信息后,可以选择存放的位置。比如说内存或文件中,但无论存在哪里,其本质都是一个大xml。因此在SQL Server中读取该XML就是解析扩展事件结果的方式。
微软官方或者一些SQL Server论坛提供了使用SQL XML解析扩展事件的脚本,如代码清单1所示。
1: WITH events_cte
2: AS ( SELECT DATEADD(mi,
3: DATEDIFF(mi, GETUTCDATE(), CURRENT_TIMESTAMP),
4: xevents.event_data.value('(event/@timestamp)[1]',
5: 'datetime2')) AS [event time] ,
6: xevents.event_data.value('(event/@name)[1]',
7: 'nvarchar(128)') AS [Event Name],
8: xevents.event_data.value('(event/action[@name="client_app_name"]/value)[1]',
9: 'nvarchar(128)') AS [client app name] ,
10: xevents.event_data.value('(event/action[@name="client_hostname"]/value)[1]',
11: 'nvarchar(max)') AS [client host name] ,
12: xevents.event_data.value('(event/action[@name="sql_text"]/value)[1]',
13: 'nvarchar(max)') AS [sql_text] ,
14:
15: xevents.event_data.value('(event/action[@name="database_name"]/value)[1]',
16: 'nvarchar(max)') AS [database name] ,
新闻热点
疑难解答