Procedure Helps Pinpoint Problematic Processes

Here's a stored procedure that displays all the T-SQL statements currently being executed along with the IDs of the processes running those statements.

Eli Leiba

March 21, 2007

1 Min Read
Procedure Helps Pinpoint Problematic Processes

If your SQL Server 2005 machine is experiencing performance problems and you need to quickly see all the T-SQL code currently executing on it, you'll likely be interested in sp_display_curr_tsql_in_sessions. This stored procedure displays all the T-SQL statements currently being executed along with the IDs of the processes running those statements.

As Listing 4 shows, sp_display_curr_tsql_in_sessions loops through all the current sessions it finds in the sys.sysprocesses system view. For each session, the stored procedure fetches the sql_handle. It uses this handle with the fn_get_sql system function to obtain the T-SQL statement that the session is currently running. The fn_get_sql function is similar to the DBCC INPUTBUFFER statement in that both return the T-SQL statement that the specified session is currently executing. However, I prefer using fn_get_sql because it displays all the text in the T-SQL statement, whereas DBCC INPUTBUFFER returns only the first 255 characters in the T-SQL statement. The sp_display_curr_tsql_in_sessions stored procedure stores the session IDs and T-SQL statements in a temporary table, which it later removes.

To execute the sp_display_curr_tsql_in_sessions stored procedure, you use the following statement:

exec sp_display_curr_tsql_in_sessions

As you can see, it doesn't need any parameters.

I wrote sp_display_curr_tsql_in_sessions for use on SQL Server 2005. With a modification, you can get it to work on SQL Server 2000 Service Pack 3 (SP3) and later. (The stored procedure won't work on previous versions of SQL Server 2000 because the fn_get_sql function was introduced in SP3.) You'd need to use varchar(8000) instead of varchar(max) with the CONVERT function because varchar(max) is new to SQL Server 2005.

Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like