确定正在执行的存储过程的一种方法是使用“动态管理”方法,如下所示:
SELECT
sqlText.Text, req.*
FROM
sys.dm_exec_requests req
OUTER APPLY
sys.dm_exec_sql_text(req.sql_handle) AS sqltext
Run Code Online (Sandbox Code Playgroud)
但是,这仅显示存储过程的 create 语句的文本。例如:
CREATE PROCEDURE IMaProcedure @id int AS SELECT * FROM AllTheThings Where id = @id
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想看看运行过程的参数是什么,导致它针对特定的一组违规参数运行这么长时间。
有没有办法做到这一点?(在这个问题中, Aaron Bertrand提到了DBCC InputBuffer,但我认为这不适合这个问题。)