SELECTR.SCHEDULER_ID ,
STATUS ,
R.SESSION_ID AS SPID,
R.BLOCKING_SESSION_ID AS BLKBY,
SUBSTRING(
LTRIM(Q.TEXT),
R.STATEMENT_START_OFFSET/2+1,
(CASE WHEN R.STATEMENT_END_OFFSET = -1
THEN LEN(CONVERT(NVARCHAR(MAX), Q.TEXT)) * 2
ELSE R.STATEMENT_END_OFFSET
END - R.STATEMENT_START_OFFSET)/2) AS [T-SQL],
R.CPU_TIME AS [CPU TIME(MS)],
R.START_TIME ,
R.TOTAL_ELAPSED_TIME AS [执行总时间],
R.READS ,
R.WRITES ,
R.LOGICAL_READS ,
-- Q.TEXT,
D.NAME
FROM SYS.DM_EXEC_REQUESTS R
CROSS APPLY SYS.DM_EXEC_SQL_TEXT(SQL_HANDLE) AS Q
LEFT JOIN SYS.DATABASES D
ON (R.DATABASE_ID=D.DATABASE_ID)
WHERE R.SESSION_ID > 50 AND R.SESSION_ID <> @@SPID
ORDER BY R.TOTAL_ELAPSED_TIME DESC
指定SPID查询执行语句
DBCC INPUTBUFFER(spid)
DECLARE @sqltext VARBINARY(128)
SELECT @sqltext = sql_handle
FROM sys.sysprocesses
WHERE spid = ?
SELECT TEXT
FROM sys.dm_exec_sql_text(@sqltext)
GO