为什么dm_exec_requests不会显示所有活动进程?

时间:2016-08-30 18:11:03

标签: sql-server sql-server-2008-r2

我正在桌面上运行删除需要一段时间(几分钟),我想看看其他进程受到了什么影响。这是我跑去检查的查询:

SELECT  er.session_id,
        CAST(GETDATE()-er.start_time as time) [RunTime],
        er.command,
        t1.text [CommandText],
        er.blocking_session_id,
        t2.text [BText]
FROM master.sys.dm_exec_requests er
CROSS APPLY master.sys.dm_exec_sql_text(er.sql_handle) AS t1
OUTER APPLY
(
    SELECT TOP 1 sql_handle
    FROM master.sys.sysprocesses
    WHERE spid = er.blocking_session_id
    AND sql_handle > 0
) p2
OUTER APPLY master.sys.dm_exec_sql_text(p2.sql_handle) t2

奇怪的是"删除"进程显示为阻塞其他两个进程(查询)。我可以看到删除过程的session_id,以及删除语句的文本。

但是"删除"进程本身并没有显示在dm_exec_requests结果集中。

我在没有交叉申请的情况下再次尝试了:

SELECT * FROM master.sys.dm_exec_requests

它仍然没有出现。

这不是正确的观点吗?为什么删除(已激活并正在运行)不会显示为执行请求?

0 个答案:

没有答案