You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask连接Azure SQL DB查询运行速度极慢的优化咨询

问题根因排查方向
  • 首先做耗时拆分定位:在Flask代码中分别打印 SQL执行耗时、结果集拉取耗时、接口返回/前端渲染耗时 三个阶段的时间,快速定位卡点:
    • 若cursor.execute()本身耗时高:排查驱动连接参数是否正确,是否存在连接复用问题,避免每次查询都重新建立数据库连接
    • 若fetchall()拉取结果耗时高:90%概率是本地到Azure SQL的公网传输延迟导致,本地跨公网访问Azure服务的链路波动、带宽限制都会放大数据传输开销,而Azure平台内直接执行查询走内部内网,天然延迟极低
  • 检查前端渲染逻辑:你当前是将3717行全量数据一次性返回给前端,Bootstrap Table默认展示10条的逻辑是前端分页,即前端会先加载全量数据再做截取、筛选初始化,3000+行数据的DOM渲染和数据处理也会占用大量时间,可通过浏览器F12开发者工具的网络面板、性能面板分别查看接口响应耗时和前端渲染耗时
  • flask_caching无效的常见原因:缓存粒度配置错误(如只缓存了静态资源没有缓存查询结果)、缓存key未覆盖筛选条件导致命中率极低、首次访问未命中缓存时无法提速,均不解决核心耗时问题
Azure App Service 部署效果判断

分两种场景对应不同结果:

  • 如果根因为公网传输延迟:将应用部署到和Azure SQL 同一区域 的付费版Azure App Service,应用和数据库之间走Azure内部内网链路,传输耗时会直接降低到和Azure平台内执行SQL的水平,可解决绝大多数耗时问题
  • 如果根因为代码逻辑/前端全量加载:部署到Azure App Service不会有明显改善,需要针对性优化:将前端分页改为服务端分页,接口每次仅返回当前页的10条数据和总行数,不需要全量拉取3717行结果;调整数据库驱动配置,关闭不必要的字段类型转换,减少序列化开销

内容的提问来源于stack exchange,提问作者ZaraThoustra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:15:03