我有一个没有任何索引的大表,大约27.5m行。
我试图删除大约一半使用BEGIN TRAN
的人。
然后我尝试取消查询,但因为花了很长时间我决定关闭管理工作室
现在,当我试着查看那张桌子时,它不会返回任何东西,只是一直在运行
当我运行SELECT TOP 10 * FROM Tbl
时,它只执行而不返回任何内容
但是当我运行SELECT TOP 10 * FROM Tbl(NOLOCK)
时,它会返回10行
这告诉我它正在等待Rollback/Commit
的{{1}}
我认为它会在关闭会话和Management Studio后自动回滚
我该如何解决这个问题?
感谢。
答案 0 :(得分:1)
执行SP:SP_LOCK
在结果中,您将获得SPID,DBID,OBJID,INDID,TYPE,RESOURCE, 模式,状态
现在检查状态列,如果它显示等待杀死那个SPID。杀死特定的SPID执行SP:杀死65(其中 65是SPID)
答案 1 :(得分:0)
显然,这有效:
终止/关闭与数据库的连接可以解决这个问题。要关闭连接,您可以尝试从任务管理器或活动监视器终止sqlserver.exe(如果您有Mac)。