2

我的云应用程序(Web 角色)将超过 5000 条记录上传到 SQL Azure。在我的开发机器上,这个过程的总时间大约需要 15-19 分钟。有一次,我部署到云端并重试,它在 10 到 12 分钟后失败,没有任何错误消息。

我的猜测是网络角色在一段时间后超时。有这个设置吗?

4

2 回答 2

3

您的 webrole 不会超时。

SQL Azure 可能会超时,并且您的连接也可能会被终止。

连接终止的一些原因:

  • 消耗超过一百万个锁的会话将被终止。
  • 日志文件大小 > 1 GB 的事务将被终止。
  • 从第一个或最旧的活动事务日志序列号 (LSN) 到日志尾部(当前 LSN)的距离不能超过日志文件大小的 20%。
  • 如果一个事务锁定一个底层系统操作所需的资源超过 20 秒,它就会被终止。
  • 当会话使用超过 5 GB 的 tempdb 空间(= 655,360 页)时,会话将终止。
  • 当存在内存争用时,消耗超过 16 兆字节 (MB) 超过 20 秒的会话将按资源持有时间的降序终止,例如最旧的会话首先终止。
  • 当数据库达到其最大数据库大小时,它将是只读的。发生这种情况时,尝试更新或插入的事务将被终止。

http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-connection-management-in-sql-azure.aspx#Reasons

于 2010-12-24T12:48:20.100 回答
0

我可以建议你分页上传吗?即使只是在内存中构建记录集(而不是缓存/队列/表/blob存储),然后针对SQL执行。

至少它可以让你找出问题所在。

于 2010-12-29T23:55:49.943 回答