1

我使用了一个名为“Procs completed by me”的 SQL Server Profiler 跟踪模板,其中包括此文本过滤器:%@UserID=123%。

在此处输入图像描述

我们网站运行的几乎所有存储过程都包含@UserID 参数,所以我可以点击查看对数据库的影响。它忽略了其他网站用户运行的所有存储过程。非常有用!

如何在扩展事件中创建相同的东西?

答案(来自下面的大卫)是

CREATE EVENT SESSION XE_ProcsRunByMe
ON SERVER
ADD EVENT sqlserver.rpc_completed (WHERE sqlserver.like_i_sql_unicode_string(statement,N'%@UserID=123%'))
4

1 回答 1

3

在会话窗口中:
在左侧的列表中转到Events,下面Event library:rpc_事件。
对于用户,在同一窗口中转到Configure右侧,然后Selected events:在左侧选择一个实际事件(如果您列出多个,因为必须设置每个事件),然后在右侧选择Filter (predicate),并在Field检查下适当的值(我现在无法检查它,我曾经在我的机器上过滤sqlserver.client_hostname并减少占用空间sqlserver.database_name)。如果根据 SQL Server 用户映射,用户不同,则改为过滤语句(列表中应该有类似statement的内容,但可能取决于 SQL Server 版本)。

于 2021-03-22T14:12:36.090 回答