Azure SQL连接超时(非瞬态)

时间:2017-03-10 17:18:21

标签: database performance azure database-connection azure-sql-database

我知道Azure SQL连接超时有帖子,但是没有找到以下情况。

我一直在使用Azure SQL(S3计划)。通常,DTU非常低,并且应用程序连接到此DB时没有超时。

当我们针对数据库运行批处理作业时,问题就开始了,例如更新数百万行的某些列值。完成这些批处理作业可能需要数小时。在此期间,DTU值达到最大值,其他应用程序因超时而失败。

是否有关于应该做什么的指导方针?以下是我想到的选项。

  1. 升级到更高级别。此选项可能有效,但由于DTU通常非常低,因此没有吸引力。
  2. 增加连接到数据库的应用的超时时间。不确定这是否有效,因为超时需要很长时间。
  3. 如果有办法将DTU的某一部分分配给批处理作业(比如说70%),并且总是为其他人留下一些DTU,这是理想的,但我不会想到它和#39;可能。任何建议将不胜感激!

2 个答案:

答案 0 :(得分:0)

您可以在运行批处理作业之前升级到更高级别,然后降级回S3。

答案 1 :(得分:0)

增加超时很少是真正的解决方案,并且往往会使事情变得更糟。

首先查看批处理作业正在执行的操作是否可以通过查看索引缺失或不足的查询执行计划,低效的查询逻辑,缓存机会等来确定批处理作业正在执行的操作。

您可以为批处理作业添加配置设置和自我限制逻辑,以允许您控制在给定时间范围内可执行的操作数,然后使用它来确定在您的情况下最适合的操作。

也许一个更简单的选择就是在批处理作业的开头添加一个步骤,在启动时临时将数据库扩展到更高的定价层,然后在完成时将其缩小。

ALTER DATABASE MyDatabaseName MODIFY (SERVICE_OBJECTIVE = 'P4')