12

I have a stored procedure that is currently running, and seems to hang/lock on a specific query. How can i see which query? Preferably without modifying the proc.

Using

DBCC Inputbuffer (65)

gives me

Language Event 0 EXEC mySP;

cederlof
  • 7,206
  • 4
  • 45
  • 62

3 Answers3

17
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 
Martin Smith
  • 438,706
  • 87
  • 741
  • 845
2

There is an excellent stored procedure to get extended information on currently running queries. It's available to download from: http://whoisactive.com

Community
  • 1
  • 1
Evgeny Lukashevich
  • 1,500
  • 14
  • 26
1

Use SQL Profiler; as the name suggests, it's the main profiling tool for SQL Server and it can show the execution time for each statement inside a procedure.

Pondlife
  • 15,992
  • 6
  • 37
  • 51
  • 1
    That was my thought as well, but all it shows me is the "EXEC mySP" query used to trigger the SP. Or am I using incorrect filtering? – cederlof Feb 15 '12 at 13:12
  • 2
    @cederlof - You would need to capture the `SP:StmtCompleted` and `SP:StmtStarting` events in Profiler. – Martin Smith Feb 15 '12 at 13:21