我们通过ADO.NET Asynchronous BEGINEXecuteNonQuery运行一个长跑SP,SP运行了12个小时,这个sp执行从一个表到另一个表的批量插入约6,00,00,000个记录。
当我检查状态时执行批量插入时,查询进入暂停模式一段时间(我认为它正在等待IO资源)并返回运行模式,在等待另一个15分钟后返回暂停状态一段时间,如果我检查状态,我看到SPID已经" RollBack'不处于RUNNING状态。我还没有取消交易并且不确定状态显示为什么有RollBack,不确定回滚的原因是否为SPID。
以前有人面对同样的问题吗?如何处理这种情况?
答案 0 :(得分:2)
你的SP可能会返回一个可能告诉你出错的错误。
使用BeginExecuteNonQuery(AsyncCallback, Object)
检查查询结果:
SqlCommand.BeginExecuteNonQuery Method
您还可以分析服务器日志: