2

我在 SQl Azure 中有一个存储过程,它每 5 分钟定期调用一次并处理大量数据,根据我的日志,它有时会给出如下所示的超时错误。

超时已过。在操作完成之前超时时间已过或服务器没有响应。

如何增加此查询或整个数据库的超时?什么是默认超时?

更新

根据@Ming 和@Ruchit 的回答,我认为超时不是由于此处连接到sql azure,因为当我检查了日志然后出现以下错误时,它将显示如下消息

警告:空值被聚合或其他 SET 操作消除。

这意味着查询正在执行,上面的消息是因为我在 NULL 值上使用了一些聚合函数。我想对了吗?应该是什么其他可能的原因?

提前致谢。

4

2 回答 2

3

根据http://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/7070c2f9-07d1-4935-82c2-b74a196908ee/,SQL Azure 将关闭超过 5 分钟的空闲连接。正如您提到的,您每 5 分钟调用一次存储过程,因此您可能处于超时边缘。我建议您更改为每 4 分钟一次,看看是否有效。

此外,在使用 SQL Azure 时,重试非常重要。当查询失败时,请关闭连接,等待几秒钟,然后创建一个新的连接,再次尝试查询。通常第二次会正常工作。

此致,

明旭。

于 2012-04-17T08:11:06.360 回答
1

明旭是对的。错误的原因很可能是 5 分钟超时。如果您无法更改调用存储过程的时间段,一种选择是每 3 或 4 分钟对 SQL Azure 进行一次虚拟调用。这将防止连接被关闭。

于 2012-04-18T04:53:16.653 回答