2026-08-28.md 1.4 KB

2026-08-28 工作日志

testProjectConfiguration 页面性能分析(20秒渲染问题)

背景:检化验项目测试项目配置页(src/views/standardManagement/components/testProjectConfiguration/testProjectConfiguration.vue)从打开到渲染完毕约 20 秒。

结论:瓶颈不在数据库单条 SQL(实测均 <250ms),而是:

  1. P0-1 页面一打开 3 个弹窗子组件(alertComponents/3/4)挂载即发请求,父+子合计约 19 个并发请求,其中 6 个为 pageSize=9999/99999 全量查询
  2. P0-2 gettestItemNameTypeList() 是死代码,结果 testItemNameType 模板中从未使用,却拉全量测试项目
  3. P1-3 3 个巨型表格(25/32/12 列)全列 sortable + tooltip + show-summary + fixed + el-tabs 非激活也渲染
  4. P1-4 后端 4 张核心表除主键外无业务索引,ORDER BY CREATE_TIME DESC 全表排序;生产库数据量大时会急剧恶化(已用 EXPLAIN PLAN 证实全表扫描)
  5. P2 勾选/点击行触发 pageSize=990 子表查询风暴;后端 DEBUG 日志 + SQL 全量输出

关键数据(直连 Oracle 只读实测):测试项目 1050 行、分析项目 741 行、子表 D 8309 行、方法标准 318 行。

主要建议:弹窗组件 v-if 懒加载(可砍 14 个首屏请求)、删死代码、补 5 个索引、降低 pageSize、表格瘦身。

产出:.workbuddy/artifacts/testProjectConfiguration性能分析报告.md