我正在尝试解决在我们的新SQL Server上弹出的问题。在查看正在运行的进程(sp_who2
)时,我无法确定proc的起始参数是什么。
我可以使用DBCC INPUTBUFFER (spid)
我甚至可以找到一些额外的信息,但我看不到显示参数的方法。
我知道如果我进行跟踪,我可以看到参数,但在这种情况下这没有帮助。
答案 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)
您可以更改存储过程以记录参数吗?也许可以在表格中插入诊断参数?