我正在尝试检查一些带有扩展事件的 T-SQL,就像我以前使用 SQL 探查器一样。我有以下活动会话:
IF EXISTS (SELECT name FROM sys.dm_xe_sessions WHERE Name = 'PySoup tracing')
BEGIN
DROP EVENT SESSION [PySoup tracing] ON SERVER
END
CREATE EVENT SESSION [PySoup tracing] ON SERVER
ADD EVENT sqlserver.rpc_completed (ACTION(sqlserver.client_app_name, sqlserver.sql_text )),
ADD EVENT sqlserver.sp_statement_completed (ACTION(sqlserver.client_app_name, sqlserver.sql_text )),
ADD EVENT sqlserver.sql_batch_completed (ACTION(sqlserver.client_app_name, sqlserver.sql_text )),
ADD EVENT sqlserver.sql_statement_completed (ACTION(sqlserver.client_app_name, sqlserver.sql_text ))
ADD TARGET package0.event_file(SET filename=N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\PySoup tracing.xel')--,
--ADD TARGET package0.ring_buffer(SET max_events_limit=(1000000))
GO
ALTER EVENT SESSION [PySoup tracing] ON SERVER
STATE = START;
我认为 ACTION 子句应该列出事件返回的列。sqlserver.client_app_name
但是,当我在 GUI 中查看事件数据时,我没有看到列。
我究竟做错了什么?
我以前见过这个问题,如果你有这种类型的序列似乎会发生什么:
GUI 不显示添加的柱状数据。您在这里的选择是直接查询目标或清除/重命名旧会话定义的 XEL 文件。
并不是说这将被视为您的情况的答案,因为您已经标记了它。这只是我的看法,有一些测试。
我使用 SQL Server 2012 实例和 SSMS 版本创建了事件会话,减去了应用程序名称事件。
我从未关闭过实时数据查看器,也从未停止过会话。我进入会话的属性并添加了
client_app_name
. 然后再次查看输出,并没有立即显示,但确实开始按预期显示应用程序名称。从 SQL Server 2012 开始,您可以更改会话属性,而无需停止和启动会话。所以我可以添加和删除字段,包括过滤器等,而不必费心停止/启动。在您的情况下,我不知道这是否属实,但实时数据视图确实会导致调度延迟发生变化。它可能需要一段时间才能把它捡起来。您可以从我对另一个问题的回答中了解这一点。