SQL Server - 在创建索引时,为什么我的SPID会被"暂停"但不会被阻止?

Sql*_*yan 9 sql-server suspend

我有一个SQL 2005 x64服​​务器,当我尝试对它发出一些查询时(例如,当我尝试创建索引时),我的SPID立即进入"休眠"状态,并且似乎无限期地等待.它没有被阻塞(SP_WHO2中的"BLKBY"列为空),CPU和DiskIO值非常小(每个300以下),并且没有增长.

我的查询可能还在等什么?如果我在表格中执行SELECT*,我会在一分钟左右的时间内返回所有百万行,因此它不会阻止表访问,甚至(似乎)表争用.

关于我可以查看的其他事情的任何想法?我只需要放弃并重新启动我的SQL实例吗?:)

详细信息:我正在从SSMS中的另一个选项卡运行CREATE INDEX,并且它永远不会返回 - 它只显示"正在执行"并且永远不会返回,所以我不认为该过程已被放弃.

Rem*_*anu 19

select * 
from sys.dm_exec_requests r
join sys.dm_os_tasks t on r.session_id = t.session_id
where r.session_id = <spid of create index>;
Run Code Online (Sandbox Code Playgroud)

这不仅会显示请求的状态,还会显示请求产生的所有任务.在线CREATE INDEX可能会产生并行线程,并会在它们完成之前暂停.

  • 如果只返回行并且其状态为“暂停”? (2认同)