【问题标题】:Transaction is automatically going to Rollback交易会自动回滚
【发布时间】:2014-10-29 16:40:49
【问题描述】:

我们正在通过 ADO.NET 异步 BEGINEXecuteNonQuery 运行一个 Long Running SP,SP 运行了 12 小时,这个 sp 执行从一个表到另一个表的批量插入大约 6,00,00,000 条记录。

在我检查状态时执行批量插入时,查询进入暂停模式一段时间(我认为它正在等待 IO 资源)并返回运行模式,再等待 15 分钟后返回暂停一段时间,如果我检查状态,我看到 SPID 的“回滚”未处于 RUNNING 状态。我没有取消事务,也不确定为什么显示的状态有回滚,不确定回滚状态的原因是 SPID。

以前有人遇到过同样的问题吗?这种情况如何处理?

【问题讨论】:

  • DBCC INPUTBUFFER(spid) 将告诉您从客户端发送到 SQL Server 的最后一条消息。您可以尝试在带有输出消息的 SSMS 中运行 SP 吗?

标签: sql sql-server transactions ado.net batch-processing


【解决方案1】:

您的 SP 可能返回一个错误,可能会告诉您出了什么问题。

使用BeginExecuteNonQuery(AsyncCallback, Object) 来检查查询结果:

SqlCommand.BeginExecuteNonQuery Method

你也可以分析服务器日志:

View Error Logs.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2012-07-10
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    相关资源
    最近更新 更多