我将.NET应用程序托管在azure Web应用程序上并使用自定义连接字符串连接到Azure SQL DB时出现性能问题。 用户越多,应用程序运行速度越慢。因此,我想知道在连接池级别是否可以进行一些改进。
如何查看当前设置的池大小?处理不同用户的请求时如何检测sql问题?以及如何设置池大小?
谢谢您的帮助。
答案 0 :(得分:0)
我认为这与SQL Database resource limits for Azure SQL Database server有关。
用户越多,应用程序运行速度越慢,最重要的原因之一就是达到了数据库资源限制。
计算(DTU和eDTU / vCore)
当数据库计算利用率(由DTU和eDTU或vCore衡量)很高时,查询延迟会增加,甚至可能超时。
存储
当使用的数据库空间达到最大大小限制时,增加数据大小的数据库插入和更新将失败,客户端将收到一条错误消息。数据库SELECT和DELETES继续成功。
会议和工作人员(请求)
会话和工作程序的最大数目由服务层和计算大小(DTU和eDTU)确定。当达到会话或工作程序限制时,新请求将被拒绝,并且客户端会收到错误消息。尽管可用的连接数量可以由应用程序控制,但并发工作程序的数量通常更难估计和控制。在达到数据库资源限制并且由于运行时间更长的查询而导致工作人员堆积的峰值负载期间,尤其如此。
详细信息,请参考:What happens when database resource limits are reached。
如果您的Azure SQL DB是单个数据库,则可以引用以下文档:
选择最合适的服务层。
关于性能问题,您也可以使用Monitoring and performance tuning。这将有助于解决性能问题并提高性能。
希望这会有所帮助。