2012-03-01 118 views
0

我想删除SQL Server 2005表(大约80百万条记录)上的大量数据。如果没有,说明begin tran,我写我删除查询像在SQL Server中停止删除操作

Delete from myTable 
where columnA > X' 

其中columnA不表的主键。它已经从4小时前开始,并且还没有完成。我在一个类似的情况下测试了类似的行数和类似的情况,并且在大约70分钟内完成了操作,但同时主服务器功能更强大,但花费了4个小时后它并没有停止。该数据库已配置为提供Full recovery模型。

我想知道我是否可以通过杀死相应进程的SPID来阻止这个永无止境的操作,如果我这样做了,会发生什么? sql服务器会开始回滚操作吗?数据库会被暂停吗?解决办法是什么?

回答

2

是,服务器会回滚删除操作,

这样的回滚通常采取的时间来完成,比以前的时间花在操作。

数据库不会被挂起,但锁定表将一直保持到回滚完成。