使用SQL内部代码最大化Azure SQL DTU,但不是来自SQL Server Management Studio

时间:2016-09-27 14:40:52

标签: azure-sql-database

我有点有趣的情况。对于某个查询,我们的Azure SQL实例最大为100 DTU,查询返回超时:

SqlException (0x80131904): Timeout expired.  The timeout period
elapsed prior to completion of the operation or the server is not
responding.  This failure occurred while attempting to connect to the
routing destination.

如果我在SQL Server Management Studio中运行完全相同的查询(使用硬编码的参数),它仍然需要DTU高达25%,但这仍然远离100%。该服务器上没有其他任何东西。还有一些其他查询在之前/之后运行。但是,如果我们只是运行它们,没有任何东西出现。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我对这个问题的分析是这样的..

首先,当DTU被最大化并且如果查询因此而失败时,您将不会有时间.Below是您将收到的错误消息..

  

资源ID:%d。数据库的%s限制为%d且已达到。有关更多信息

您可以尝试通过打开多个资源密集型查询来进行测试

其次,如果你的问题出现了时间,这主要是由于查询等待资源,比如一些数据库IO,内存......

我们遇到了类似的时间,但大多数是通过更新统计数据和重建索引来修复的,其余的我们已经优化了