我正在桌面上运行删除需要一段时间(几分钟),我想看看其他进程受到了什么影响。这是我跑去检查的查询:
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
它仍然没有出现。
这不是正确的观点吗?为什么删除(已激活并正在运行)不会显示为执行请求?