医院HIS数据库运维实战:传染病监测报表CRB_SEND全表扫描优化复盘(PB9.0+Oracle实战)
2026/6/18 11:22:59 网站建设 项目流程

📌 CSDN博文标签

#HIS运维 #Oracle19C #SQL慢查询优化 #数据库索引调优 #传染病监测系统 #PB9 #医院数据库运维 #全表扫描优化

摘要

医院HIS传染病监测上报模块中,CRB_SEND监测上报明细表,用于院内传染病病例筛选、上报台账查询、历史数据回溯。该报表采用多条件组合查询逻辑,生产环境长期存在全表扫描问题,业务高峰期页面加载缓慢,偶尔出现查询超时,影响公卫传染病按时上报。本文基于PB9.0+HIS真实生产环境,完整复盘慢SQL根因,采用复合索引+覆盖索引优化方案,零业务代码修改,解决双日期字段OR查询导致的索引失效问题,查询性能提升95%以上。同时附上冗余索引清理、SQL进阶改写两种优化思路,贴合医院HIS运维现场,方案可直接落地,给同行处理同类多条件组合慢查询提供参考。


一、故障背景

1. 业务场景

医院HIS系统中,CRB_SEND为传染病监测上报明细表,支撑全院传染病数据归集、公卫平台上报、院内台账核对等核心业务。前端报表支持多条件联动筛选,核心查询字段如下:

  • JGID:机构编号(必传等值条件)

  • YWDM:业务编码,传0代表不限制业务

  • ai_type=1:按操作日期CZRQ区间筛选

  • ai_type=2:按发送日期FSRQ区间筛选

2. 性能问题现象

报表查询响应缓慢,查看执行计划为TABLE ACCESS FULL全表扫描,预估消耗 644189,百万级表遍历 IO 开销巨大,高峰期页面超时卡顿。

3. 原表索引现状

表上全部为单列独立索引IDX

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询