我使用扩展事件完成的存储过程

Stored Procedures completed by me using Extended Events

我使用名为“我完成的过程”的 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%'))

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