none
Sql在查询器里运行很快,在程序里执行就超时 RRS feed

  • 问题

  • 同样的sql 放在程序里执行就超时,放在查询分析器就没问题,我看了下Azure db 中DPU已达到最大值,Azure上就会达到最大值时会降低性能,难道在查询分析器中执行就不限制吗?只在程序中限制?



    One world, one dream!

    2018年1月1日 10:09

全部回复

  • Hi Zhanglong,

    是否出现查询超时是由您本地客户端设置的 ConnectionTimeout 值来决定的,以 ASP.NET 为例,默认的 ConnectionTimeout 为 15 sec, 而 Microsoft SQL Server Management Studio 中默认是无 time-out 限制的 ,所以在执行复杂 SQL 语句时也不会出现超时现象。


    MSDN 社区技术支持
    如果该回复解决了您的问题,请及时点击“标记为答案”选项,如未解决请选择“取消标记为答案”,这会有利于其他人员来阅读您的帖子。如果您对MSDN 技术支持有任何的建议或意见,请随时联系 MSDNFSF@microsoft.com

    2018年1月2日 2:10
    版主
  • 达到最大 DTU 时会发生什么情况?

    会校准并控制性能级别,以便在选定服务层/性能级别所允许的最大限制范围内提供所需的资源来运行数据库工作负荷。 如果工作负荷达到了 CPU/数据 IO/日志 IO 限制中的其中一个限制,会继续接收资源直到达到最大允许级别,但是,可能会发现查询延迟不断增加。 这些限制不会导致任何错误,而只会减慢工作负荷,直到严重变慢,以致于查询开始超时。如果达到了并发用户会话/请求(工作线程)的最大允许数目限制,会看到明确的错误。 有关 CPU、内存、数据 I/O 和事务日志 I/O 以外的资源的限制信息,请参阅 Azure SQL 数据库资源限制 。

    我有查询器执行 也就几秒执行完,就在程序中执行就超时,Azure不限制在查询器中的执行吗?


    One world, one dream!

    2018年1月2日 3:23
  • Azure SQL Database 除了常规的服务层资源限制外,对于您使用的何种客户端进行查询并不会有额外的限制。建议您查看下您的代码,是否存在不合理的资源使用情况,例如,是否存在并发问题或未及时将不用的连接关闭等等。您可以参考这篇文章优化您的应用程序。

    MSDN 社区技术支持
    如果该回复解决了您的问题,请及时点击“标记为答案”选项,如未解决请选择“取消标记为答案”,这会有利于其他人员来阅读您的帖子。如果您对MSDN 技术支持有任何的建议或意见,请随时联系 MSDNFSF@microsoft.com

    2018年1月2日 10:09
    版主