如何在SQL Server 2008中查看当前正在运行的proc的参数

时间:2011-01-10 17:00:00

标签: sql-server-2008

我正在尝试解决在我们的新SQL Server上弹出的问题。在查看正在运行的进程(sp_who2)时,我无法确定proc的起始参数是什么。

我可以使用DBCC INPUTBUFFER (spid)

找到proc的名称

我甚至可以找到一些额外的信息,但我看不到显示参数的方法。

http://sqlserverpedia.com/blog/sql-server-bloggers/sql-server-%E2%80%93-get-last-running-query-based-on-spid/

我知道如果我进行跟踪,我可以看到参数,但在这种情况下这没有帮助。

3 个答案:

答案 0 :(得分:6)

您需要查看Adam Machanic的SP_WhoisActive它会为您提供所需的所有信息,它会以xml为您提供整个查询,因此您只需单击它即可查看正在运行的内容。
http://whoisactive.com

答案 1 :(得分:0)

编辑:我发现了这个有趣的代码:select dest.* from sys.dm_exec_requests as der cross apply sys.dm_exec_sql_text (der.sql_handle) as dest where session_id = @spid。请试一试。

http://msdn.microsoft.com/en-us/library/ms181929%28v=SQL.100%29.aspx

看起来你无法做到没有痕迹。 还有更多类似问题的帖子:Can parameterized queries be fully captured using DBCC INPUTBUFFER?

您可以使用DBCC INPUTBUFFER(spid),但仅限于从SSMS启动sp。

看看这个http://sqlblog.com/tags/Who+is+Active/default.aspx。 如果您无法将此sp添加到您的框中,则会有一些有用的代码。

编辑:它只显示你的sp正在运行的语句,而不是参数。

答案 2 :(得分:0)

您可以更改存储过程以记录参数吗?也许可以在表格中插入诊断参数?