如何杀死/立即停止很长的SQL查询?(How to kill/stop a long SQL que

2019-08-21 05:27发布

我使用SQL Server 2008和它的管理工作室。 我执行的产生多行的查询。 我试图通过红色取消按钮来取消它,但它一直没有停止在过去的10分钟。 它通常在3分钟内停止。

有什么能的原因是,我如何立即停止了吗?

Answer 1:

可能是什么原因

查询取消是即时的,前提是你的注意力可以到达服务器并进行处理。 查询必须处于取消状态,这是几乎总是正确的,如果你不喜欢从SQLCLR调用Web服务的某些操作时除外。 如果你的注意力无法到达服务器通常是由于调度超载。

但是,如果您的查询是必须回滚然后回滚不能中断交易的一部分。 如果需要10分钟,那么它需要10分钟,有什么可以做的。 即使重新启动服务器也无济于事,只会让启动不再作为恢复必须完成回滚。

要回答这些具体的理由适用于你的情况,你需要调查自己。



Answer 2:

sp_who2 'active'

检查CPUTIMEDiskIO下的值。 注意比较具有大的价值的过程的SPID。

kill {SPID value}


Answer 3:

首先执行下面的命令:

sp_who2

之后,执行下面的命令SPID,你从上面的命令有:

KILL {SPID value}


Answer 4:

这是一种愚蠢的答案,但它工作可靠,至少在我的情况:在Management Studio中,当“取消执行查询”不会停止查询我只需单击即可关闭当前文档的SQL。 它问我,如果我要取消查询,我说是的,哎哟在它停止运行了几秒钟看见。 之后,它问我,如果我想在关闭之前保存文档。 在这一点上我可以点击取消,以保持文档打开,然后继续工作。 不知道这是怎么回事幕后,但它似乎工作。



Answer 5:

您可以使用键盘快捷键Alt + Break停止执行查询。 然而,这可能不会成功在所有情况下。



Answer 6:

如果取消,并看到运行

 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.


Answer 7:

显然上的SQL Server 2008 R2 64位,与IIS长时间运行的查询杀SPID似乎不起作用,查询只是被一次又一次地重新启动。 它似乎是重用spid的。 查询导致SQL服务器采取像35%的CPU不断地挂在网站上。 我猜BC /它不能给其他响应查询在登录



Answer 8:

在我而言,我的SQL举起了,当我试图关闭它,而无休止地运行。 所以我所做的就是我打开任务管理器,结束任务我的SQL查询。 这阻止我的SQL和再启动。



Answer 9:

一个简单的答案,如果红色的“STOP”框中不能正常工作,是尝试按下键盘上的“Ctrl + Break”按钮。

如果你是在Linux上运行的SQL Server中,你可以添加到您的系统托盘称为应用程序“killall”只需点击“killall”按钮,然后点击即陷入了一个循环程序,它会终止程序。 希望帮助。



Answer 10:

我已经从同样的事情,因为患有很长一段时间。 它特别发生在您连接到远程服务器(这可能是缓慢的),或者你有网络连接较差。 如果微软知道正确的答案是什么,我怀疑。

但自从我试图找到解决方案。 只有1种门外汉工作方法

  • 点击过你正在遭受的查询选项卡中的关闭按钮。 一段时间后(如果微软不在你苛刻!),你可能会得到一个窗口,询问这

“查询当前正在执行。你想取消查询?”

  • 点击“是”

  • 一会以后,它会问你是否要保存这个查询或没有?

  • 点击“取消”

和张贴,可能是你的工作室再次稳定执行查询。

它所做的背景是与连接断开你的查询窗口。 因此,对于再次运行查询,这需要时间重新连接到远程服务器。 但请相信我这种权衡是远远比看到它运行永恒该定时器的苦难更好。

PS:这个工作对我来说,荣誉,如果你的作品了。 !



文章来源: How to kill/stop a long SQL query immediately?