首页 > 解决方案 > 如何设置/修改从 azure web app 到 azure sql 数据库的连接池 - 慢速应用问题

问题描述

我在 azure Web 应用程序上托管的 .NET 应用程序存在性能问题,使用自定义连接字符串连接到 Azure SQL DB。用户越多,应用程序就越慢。因此我想知道在连接池级别是否有一些改进。

如何检查当前设置的池大小?处理来自不同用户的请求时如何检测 sql 问题?以及如何设置池大小?

谢谢您的帮助。

标签: azure-sql-databaseazure-web-app-serviceazure-webapps

解决方案


我认为这与Azure SQL Database server 的 SQL Database 资源限制有关

用户越多,应用程序越慢,最重要的原因之一是达到数据库资源限制。

计算(DTU 和 eDTU/vCore)

当数据库计算利用率(由 DTU 和 eDTU 或 vCore 衡量)变得很高时,查询延迟会增加,甚至可能会超时。

贮存

当使用的数据库空间达到最大大小限制时,增加数据大小的数据库插入和更新会失败,并且客户端会收到错误消息。数据库 SELECTS 和 DELETES 继续成功。

会话和工作人员(请求)

会话和工作人员的最大数量由服务层和计算大小(DTU 和 eDTU)决定。当达到会话或工作人员限制时,新请求将被拒绝,并且客户端会收到错误消息。虽然可用连接的数量可以由应用程序控制,但并发工作人员的数量通常更难估计和控制。在达到数据库资源限制并且由于运行时间较长的查询而导致工作人员堆积的高峰负载期间尤其如此。

详情请参考:达到数据库资源限制时会发生什么

如果您的 Azure SQL DB 是单一数据库,您可以参考这些文档:

  1. 单个数据库的基于 Azure SQL 数据库 vCore 的购买模型限制
  2. 使用基于 DTU 的采购模型的单个数据库的资源限制

选择最合适的服务层。

关于性能问题,您也可以使用 监控和性能调优。它将有助于解决性能问题并提高性能。

希望这可以帮助。


推荐阅读