azure-sql-database - 如何设置/修改从 azure web app 到 azure 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 是单一数据库,您可以参考这些文档:
选择最合适的服务层。
关于性能问题,您也可以使用 监控和性能调优。它将有助于解决性能问题并提高性能。
希望这可以帮助。
推荐阅读
- node.js - 如何阻止 Firebase 管理员在我的程序中安装?
- python - 在 OpenCV 中检测(并拒绝)从计算机/电视屏幕上拍摄的失真图像
- java - 线性布局和cardView
- ruby-on-rails - Rails 在哪里找到 applications-xxx.js 文件
- ios - apple-app-site-association JSON 没有出现?
- windows - 我应该如何使用 Eclipse for C/C++ 将图像存储在 exe 中?
- php - 征求基本 facebook 等墙/柱结构的建议
- linux - 将 perl 脚本作为守护进程运行时的 PID 文件问题
- php - 我可以在不使用 PHP 中的 URL 的情况下在超链接中传递变量以在表中使用吗
- android - 新 Android 版本的问题:无意中将 android.hardware.type.watch 放在以前的版本上