我有类似的扩展活动
CREATE EVENT SESSION [Name] ON SERVER
ADD EVENT sqlserver.sql_statement_completed(SET collect_statement=(1)
ACTION(...)
......
现在,当我右键单击View Target Data
时,它会尝试加载所有内容,即使过滤器也在那里。我只需要查看今天执行的语句即可。今天如何获得Statemnets?
答案 0 :(得分:0)
SELECT event_data = CONVERT(XML, event_data)
INTO #t FROM sys.fn_xe_file_target_read_file(N'system_health * .xel',NULL,NULL,NULL);
答案 1 :(得分:0)
在这种情况下,我使用以下命令。如果使用的版本早于SQL Server 2016,则应更改 DROP TABLE IF EXISTS 语句。
DROP TABLE IF EXISTS #tempapperror
SELECT
[timestamp] = (xe_file.xml_data.value('(/event/@timestamp)[1]', '[varchar](100)' ) )
,[database_name] = (xe_file.xml_data.value('(/event/action[@name=''database_name'']/value)[1]','[varchar](250)'))
,...
INTO #tempapperror
FROM (
SELECT [FILE_NAME]
,[XML_DATA] = CONVERT(XML, EVENT_DATA)
FROM sys.fn_xe_file_target_read_file('yourfilepath*.xel', NULL, NULL, NULL)
) AS xe_file
WHERE (xe_file.xml_data.value('(/event/@timestamp)[1]', '[varchar](100)' ) )>='2019-07-17T00:00:00.000Z'
SELECT * FROM #tempapperror ORDER BY 1 DESC