我使用TransactionScope在线程中转储Server数据库中的数据。
using (TransactionScope scope = new TransactionScope())
{
// Dump data in database
scope.Complete();
}事务是一个长事务(~40秒),因为数据量很大。这很正常。
当我在此事务处理期间执行Abort()以停止线程时,Server似乎被锁定了几分钟。
发生了什么,我怎样才能避免这种情况?
发布于 2010-10-28 06:59:40
简单地说:你不能。
服务器似乎在几分钟内被锁定。
不是的。Server正在忙着取消您的事务。它被完全优化为提交事务,而不是撤销它们。撤消大型更新是一项缓慢的操作。取决于您的服务器布局和数据量,它可能需要几分钟甚至几个小时。
你能做的就是..。不是回滚/中止。或者等着。
https://stackoverflow.com/questions/4040503
复制相似问题