讨论案例分享我们家 OEM 工厂 1000+ Oracle 存储过程要重构,迁移路径分享
客户案例 / 案例分享CosDev 已交付

我们家 OEM 工厂 1000+ Oracle 存储过程要重构,迁移路径分享

@周伟L2 信任用户
质量经理 · 5 年经验 · 主攻合规自检 / 安评 / 标签生成
2 小时前 发布2918 浏览 · 3 回复

CosDev 自己有个长期客户嘉氏堂,2017 年帮他们做的 OEM ERP,因为客户 IT 团队熟 Oracle,整套业务逻辑放在 1000+ 存储过程里。8 年下来运行稳定但维护越来越重。

痛点

  • Oracle 19c license 每年 ¥40 万
  • 存储过程的版本管理弱
  • 新员工不懂 Oracle PL/SQL
  • 性能瓶颈在并发场景显现

重构原则(INCILABSV2 项目正在做这事)

  1. 不一次性切换——逐模块重构,PG 和 Oracle 并存运行 6-12 个月
  2. 业务逻辑从存储过程上提到 Python(FastAPI)——更容易测、好版本管理、易招人
  3. 数据迁移最后做——前期都是 dual-write 验证一致性
  4. 每模块切换前必须有 100% 业务回归测试(自动化)

时间盘子

按模块拆,BSE → SAL → PUR → INV → LAB → QC → SFC → SAM → RPT。 每个模块 2-4 个月。整体 18-24 个月。

预算估算

按 1000 存储过程估算:3-5 个工程师 × 18-24 个月 ≈ ¥350-600 万。

关键决策:保留 80% 业务逻辑不动,只改"承载形式"(存储过程 → Python service)。这样客户业务团队几乎无感。

有同样在做这事的兄弟欢迎私信交流细节。

3 条回复

按热度 ▾
林 IT 总监· 2 天前

同样是 Oracle 1500+ 存储过程的客户 IT。这条路我们也在评估,预算估算和你给的 ¥350-600 万非常一致。dual-write 验证一致性这步具体怎么做?

高研发副总· 1 天前

对存储过程的核心逻辑还是 Oracle 比 PG 强一点(嵌套游标 / 层次查询 / 分析函数)。如果迁过去,部分高频查询要重写优化,会不会反而性能下降?

周伟· 1 天前

@林 IT @高研发副总 两个问题都关键:

dual-write 验证

核心思路:业务方调"新接口"(Python service),新接口内部 ① 调老存储过程 ② 调 PG 业务逻辑 ③ 比对结果差异 → 写入差异表。运行 1-3 个月差异率 < 0.01% 后切换。比对维度包括:返回值 / 影响行数 / 副作用(写入哪些表)。

Oracle vs PG 性能

实测下来:80% 查询 PG 持平或更快(PG 12+ 之后查询规划器追上来了);20% 性能敏感的(深层嵌套游标、复杂分析函数)需要专门优化或改写为 Python service + 多次查询。最坏 case 不会比 Oracle 慢 30%。

CosDev 在 INCILABSV2 项目验证了这条路径,数据已上 PG 4 万+ 配方 + 38 万+ 物料 + 1.5 M NMPA 备案,单查询 < 200ms。

你的回复

B  I  S  ¶  </>  »  •  ☷  🔗  📎
草稿自动保存于 30 秒前