我在 azure Web 应用程序上托管的 .NET 应用程序存在性能问题,使用自定义连接字符串连接到 Azure SQL DB。用户越多,应用程序就越慢。因此我想知道在连接池级别是否有一些改进。
如何检查当前设置的池大小?处理来自不同用户的请求时如何检测 sql 问题?以及如何设置池大小?
谢谢您的帮助。
我在 azure Web 应用程序上托管的 .NET 应用程序存在性能问题,使用自定义连接字符串连接到 Azure SQL DB。用户越多,应用程序就越慢。因此我想知道在连接池级别是否有一些改进。
如何检查当前设置的池大小?处理来自不同用户的请求时如何检测 sql 问题?以及如何设置池大小?
谢谢您的帮助。
我认为这与Azure SQL Database server 的 SQL Database 资源限制有关。
用户越多,应用程序越慢,最重要的原因之一是达到数据库资源限制。
计算(DTU 和 eDTU/vCore)
当数据库计算利用率(由 DTU 和 eDTU 或 vCore 衡量)变得很高时,查询延迟会增加,甚至可能会超时。
贮存
当使用的数据库空间达到最大大小限制时,增加数据大小的数据库插入和更新会失败,并且客户端会收到错误消息。数据库 SELECTS 和 DELETES 继续成功。
会话和工作人员(请求)
会话和工作人员的最大数量由服务层和计算大小(DTU 和 eDTU)决定。当达到会话或工作人员限制时,新请求将被拒绝,并且客户端会收到错误消息。虽然可用连接的数量可以由应用程序控制,但并发工作人员的数量通常更难估计和控制。在达到数据库资源限制并且由于运行时间较长的查询而导致工作人员堆积的高峰负载期间尤其如此。
详情请参考:达到数据库资源限制时会发生什么。
如果您的 Azure SQL DB 是单一数据库,您可以参考这些文档:
选择最合适的服务层。
关于性能问题,您也可以使用 监控和性能调优。它将有助于解决性能问题并提高性能。
希望这可以帮助。