当前在存储过程内运行查询

时间:2012-02-15 12:31:30

标签: sql-server sql-server-2008 tsql stored-procedures dbcc

我有一个当前正在运行的存储过程,似乎挂起/锁定特定查询。我怎么才能看到哪个查询?最好不要修改过程。

使用

DBCC Inputbuffer (65)

给了我

  

语言事件0 EXEC mySP;

3 个答案:

答案 0 :(得分:18)

SELECT SUBSTRING(st.text, ( r.statement_start_offset / 2 ) + 1, 
              ( ( CASE WHEN r.statement_end_offset <= 0
                       THEN DATALENGTH(st.text) 
              ELSE r.statement_end_offset END - 
       r.statement_start_offset ) / 2 ) + 1) AS statement_text 
FROM   sys.dm_exec_requests r 
       CROSS APPLY sys.dm_exec_sql_text(sql_handle) st 
WHERE  session_id = 65 

答案 1 :(得分:2)

有一个很好的存储过程来获取有关当前运行查询的扩展信息。它可以从以下网址下载: http://whoisactive.com

答案 2 :(得分:1)

使用SQL事件探查器;顾名思义,它是SQL Server的主要分析工具,它可以显示过程中每个语句的执行时间。