如何在SQL Server Profiler中获取SQL Server查询的参数值

Adr*_*ore 20 sql-server sql-server-profiler sql-server-2008

我正在尝试分析SQL Server 2008探查器中的死锁.我知道如何找到有问题的SQL查询,但收集的查询不包含参数值.

换句话说,我可以看到这样的事情:

DELETE FROM users WHERE id = @id
Run Code Online (Sandbox Code Playgroud)

但我想看到的是:

DELETE FROM users WHERE id = 12345
Run Code Online (Sandbox Code Playgroud)

我想我需要在探查器中收集一些额外的事件或列,但我不知道哪个.我目前正在使用"TSQL_LOCKS"模板.

任何提示将不胜感激.

谢谢,

阿德里安

免责声明:之前我曾问过类似的问题,但我觉得这个问题太具体了,这就是我没有回复的原因.我开始用这个尝试了.

dav*_*vek 21

我认为你需要RPC:Completed事件:

http://msdn.microsoft.com/en-us/library/ms175543.aspx


Rem*_*anu 5

事件探查器将在RPC:Completed / RPC:Starting事件中包含参数值。但是您已经得到答复告诉您。

我要添加的是,几乎不需要知道参数运行时值即可分析死锁图。首先,因为如果在死锁中涉及“用户”,那么如果冲突在键上,则死锁图本身将放弃@id是什么冲突。其次,更重要的是,对于死锁情况,所涉及的确切密钥无关紧要。不太可能发生死锁,因为会删除ID为123的用户,但是在删除用户321时不会发生。

如果您决定首先询问SO,那么我认为最好是发布实际的死锁图,并让社区进行了解。这里有很多仅从死锁图XML就能回答很多问题的方法。