Sql-Azure上的重复超时

时间:2013-07-03 12:05:29

标签: azure azure-sql-database

在我们的系统上,由使用数据库sql-azure的Web角色实现,我们遇到特定查询的重复超时。

这些超时在白天发生几个小时,然后不再出现。

该查询有两个表,其中行数不是很高(大约800,000行),并且使用主键进行连接。

执行计划没问题,索引使用正常,查询通常需要两秒钟才能执行。

没有EntityFramework的测试会得到相同的结果。

暂停故障处理不适用于超时。

这种行为的原因是什么?

1 个答案:

答案 0 :(得分:3)

我们过去使用SQL Azure遇到过类似的问题;经常查询运行针对少于10行的表甚至标准.Net成员资格提供程序查询,所有查询都会间歇性地失败。这通常是因为我们对我们的服务几乎没有活动;主要是在晚上。

在可以安全地重试SQL Timeout(通常是读取操作)的常用区域中,我们将自定义错误检测策略的超时异常添加到Transient Fault Handling Block;但是正如你所说,这在大多数情况下是不合适的。

到目前为止,我们从Azure支持获得的最佳解释是,SQL Azure实际上是多个客户端使用的共享SQL Server实例;如果一个用户执行密集操作,则会以这种方式影响其他用户。然而;相信这是不可接受的我们仍然与SQL Azure支持联系,以确定为什么限制不会阻止这种活动影响我们。

你最好的选择是:

  • 通过论坛或直接联系SQL Azure Support(如果您有支持包)
  • 如果可能的话;尝试设置新的SQL Azure实例并跨数据库迁移
    • 虽然我们在一个SQL Azure实例上间歇性地遇到此问题;我们从未在其他2个实例中体验过它。

作为旁注;我们仍在等待Azure支持人员回复我们为何仍然收到超时异常。