【发布时间】: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