我使用SQL Server 2008和它的管理工作室。 我执行的产生多行的查询。 我试图通过红色取消按钮来取消它,但它一直没有停止在过去的10分钟。 它通常在3分钟内停止。
有什么能的原因是,我如何立即停止了吗?
我使用SQL Server 2008和它的管理工作室。 我执行的产生多行的查询。 我试图通过红色取消按钮来取消它,但它一直没有停止在过去的10分钟。 它通常在3分钟内停止。
有什么能的原因是,我如何立即停止了吗?
可能是什么原因
查询取消是即时的,前提是你的注意力可以到达服务器并进行处理。 查询必须处于取消状态,这是几乎总是正确的,如果你不喜欢从SQLCLR调用Web服务的某些操作时除外。 如果你的注意力无法到达服务器通常是由于调度超载。
但是,如果您的查询是必须回滚然后回滚不能中断交易的一部分。 如果需要10分钟,那么它需要10分钟,有什么可以做的。 即使重新启动服务器也无济于事,只会让启动不再作为恢复必须完成回滚。
要回答这些具体的理由适用于你的情况,你需要调查自己。
sp_who2 'active'
检查CPUTIME和DiskIO下的值。 注意比较具有大的价值的过程的SPID。
kill {SPID value}
首先执行下面的命令:
sp_who2
之后,执行下面的命令SPID,你从上面的命令有:
KILL {SPID value}
这是一种愚蠢的答案,但它工作可靠,至少在我的情况:在Management Studio中,当“取消执行查询”不会停止查询我只需单击即可关闭当前文档的SQL。 它问我,如果我要取消查询,我说是的,哎哟在它停止运行了几秒钟看见。 之后,它问我,如果我想在关闭之前保存文档。 在这一点上我可以点击取消,以保持文档打开,然后继续工作。 不知道这是怎么回事幕后,但它似乎工作。
您可以使用键盘快捷键Alt + Break停止执行查询。 然而,这可能不会成功在所有情况下。
如果取消,并看到运行
sp_who2 'active'
(活动监视器将无法使用旧的SQL Server 2000上FYI)
现货SPID你想杀死如81
Kill 81
运行sp_who2 'active'
再次,你可能会注意到它正在睡觉......回滚
要再次获得状态运行KILL
Kill 81
然后你会得到这样的消息,
SPID 81: transaction rollback in progress. Estimated rollback completion: 63%. Estimated time remaining: 992 seconds.
显然上的SQL Server 2008 R2 64位,与IIS长时间运行的查询杀SPID似乎不起作用,查询只是被一次又一次地重新启动。 它似乎是重用spid的。 查询导致SQL服务器采取像35%的CPU不断地挂在网站上。 我猜BC /它不能给其他响应查询在登录
在我而言,我的SQL举起了,当我试图关闭它,而无休止地运行。 所以我所做的就是我打开任务管理器,结束任务我的SQL查询。 这阻止我的SQL和再启动。
一个简单的答案,如果红色的“STOP”框中不能正常工作,是尝试按下键盘上的“Ctrl + Break”按钮。
如果你是在Linux上运行的SQL Server中,你可以添加到您的系统托盘称为应用程序“killall”只需点击“killall”按钮,然后点击即陷入了一个循环程序,它会终止程序。 希望帮助。
我已经从同样的事情,因为患有很长一段时间。 它特别发生在您连接到远程服务器(这可能是缓慢的),或者你有网络连接较差。 如果微软知道正确的答案是什么,我怀疑。
但自从我试图找到解决方案。 只有1种门外汉工作方法
“查询当前正在执行。你想取消查询?”
点击“是”
一会以后,它会问你是否要保存这个查询或没有?
点击“取消”
和张贴,可能是你的工作室再次稳定执行查询。
它所做的背景是与连接断开你的查询窗口。 因此,对于再次运行查询,这需要时间重新连接到远程服务器。 但请相信我这种权衡是远远比看到它运行永恒该定时器的苦难更好。
PS:这个工作对我来说,荣誉,如果你的作品了。 !