2013-10-31 70 views
4

我们有一些托管在Windows Azure中的云服务以及一些Azure SQL数据库。在晚上(在4:00 - 6:00 utc期间)有一些Jobs将数据导入数据库。几个星期以来,所有的作业都失败,超时过期,数据库异常。如果我在模拟器中的本地机器上稍后(在7:00 - 9:00 utc期间)运行作业,则所有作业在同一数据库上都没有任何问题。SQL Azure:超时已过期

在mport时间,我们的网站在数据库服务器上没有太多流量。管理门户的监控显示,没有多少打开的连接,没有节流连接,也没有连接错误。在我的本地跑步中有更多的流量。

sys.event_log不包含任何错误或其他可能的问题。

是否有任何日志或其他选项可以获取有关为什么乔布斯在晚上失败的更多信息?

更新 看来,该SQL Azure的服务器忽略该命令超时属性。作业从UTC开始于4:30,并在4:37停止超时异常。但是,获取超时的查询的命令超时时间为1200(20分钟)。在启动命令之前,有一些来自ftp-server,文件解析和其他SQL查询的下载。

+0

我真的很想看看您是否可以将服务器移动到另一个团队或地区,该文档指出,您永远无法确定其他人在该数据库服务器上可能最终会限制您的操作。你有没有找到任何解决方案,你可能想分享? – Archlight

+0

不,我没有找到任何解决方案。这些问题目前不会发生,但我没有做任何相关的事情。 –

回答

0

需要注意的是,SQL Azure不是MS SQL的完整版本,并且有一些限制。最显着的限制是它的基础设施。您的SQL Azure数据库将托管在与数百个其他用户共享资源的小型实例服务器上。虽然在机器上有合理的使用策略,但服务器需要时间才能启动。

我的建议是有一些方法来确定作业是否实际启动或者连接池是否超时开始工作。 I.E.创建一个插入的工作表来说出它的开始,并将其作为工作中的第一个动作。

或者,您可以考虑迁移到Azure中的VM安装程序。这是您拥有小型或中型实例虚拟机并且运行MS SQL Server的完整版本的位置。这样,您就可以正确地在服务器上运行作业,并更适当地控制连接池。