【问题标题】:System.Data.SqlClient.SqlException: Timeout expired on commitSystem.Data.SqlClient.SqlException:提交时超时
【发布时间】:2014-01-20 08:53:33
【问题描述】:

我正在编写一些代码,将大量数据导入三个表中,目前这三个表中大约有 600 万行。我想在事务中执行此操作,因此如果有任何问题或用户取消导入,则不会导入任何内容。这在我自己的开发机器上运行良好,但是在较慢的亚马逊 ec2 实例和微型 sql 实例上我得到以下异常:

System.Data.SqlClient.SqlException: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding

现在我知道提交最终会完成,因为当我查看时数据存在于表中,所以我的问题是;如果不将连接超时属性添加到我的连接字符串(我只希望这个操作不超时),是否可以轻松避免这种情况,或者这是一件非常困难/危险的事情吗? 我不确定是否应该导入到保存表中,然后在我准备好时调用存储过程来移动数据,因为我认为这会导致更短的事务)

我正在使用 Ms Sql server 2012。 如果我需要添加更多数据,请发表评论。 非常感谢您的帮助

【问题讨论】:

    标签: sql-server transactions timeout bigdata


    【解决方案1】:

    检查什么是 SP 超时.. 如果您有任何第三方工具,如 Redgate 或 Avicode,您可以找出它..或使用 Profiler 找出它..然后查看 SP 或查询的执行计划。 . 如果您发现任何 Key 查找或 RID 查找,请先解决它并重试..

    【讨论】:

    • 我不太明白你在说什么,实际将数据放入表中的存储过程和查询没有超时,并且在我调用提交方法时抛出了上述异常在事务对象中。
    猜你喜欢
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 2022-01-11
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多