大咖助阵|存储过程的拆分锦囊
黄炳洪
你好,我是姚琪琳。我在课程第二十三节课讲到了一些存储过程拆分的通用方法。你读后一定意犹未尽吧。那些方法、技巧可能与你的系统接近,但就是差那么一点儿无法解决实际的问题。比如存储过程过于复杂,根本不可能替换成 API 调用。那今天我就邀请我的同事黄炳洪,为你分享一下存储过程拆分的高阶技巧,希望对你有所帮助。
你好,我是黄炳洪(如果你愿意,可以叫我大饼)。
作为 Thoughtworks 中国区的一名技术顾问,我近年来专注于敏捷软件开发、团队赋能、遗留系统现代化等领域。很高兴受邀和你分享我和团队的一些经验。
在我们帮助客户对遗留系统做微服务化改造的过程中,存储过程是大伙儿最为头疼的一个问题。
这是因为在一些遗留系统里,存储过程是其重要的组成部分,大量的业务逻辑写在存储过程中。而存储过程的拆分,跟上层代码的拆分有着诸多不同,难度甚至高好几个等级。
为什么说它难以拆分呢?原因有以下四个方面:
1. 存储过程中的 SQL 直接读写多个业务的表,表与表之间耦合紧密,不易拆分。
2. 存储过程的业务逻辑分布在 SQL 语句的 select、join、where 部分中,分析工作量大。
3. 主流 IDE 对存储过程的重构、调试、自动化测试的支持非常有限,因此开发工作大量依赖手工修改,出错风险大。
4. 熟悉存储过程的开发人员数量比熟悉高级开发语言的少,导致人手不足、开发进度缓慢。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
存储过程拆分的高阶技巧 本文介绍了存储过程拆分的高阶技巧,旨在帮助读者应对存储过程剥离过程中的挑战。作者分享了两种拆分手法:新增历史表和套壳法,以及两种适用于写数据场景的技巧:用异步任务代替修改操作和用临时表简化创建操作。通过实战模拟案例和详细步骤,读者可以学习如何实施这些技巧,解决存储过程拆分中的挑战。这些技巧不仅能帮助技术人员应对遗留系统现代化改造中的挑战,还能降低维护成本,优化性能,简化重写逻辑的工作量,具有一定的参考价值。 在文章中,作者提到了四个“锦囊”:新增历史表、套壳法、用异步任务代替修改操作,以及用临时表简化创建操作。这些技巧可以帮助读者应对存储过程的拆分问题,提高工作效率。此外,文章还提出了一个讨论题,探讨了套壳法在存储过程调用链路较深时可能面临的问题,并邀请读者分享解决方案。 总的来说,本文通过分享实用的技巧和案例,为读者提供了解决存储过程拆分挑战的思路和方法。这些技巧不仅有助于简化问题,还能为现代化改造提供有力支持,对于需要进行存储过程剥离的技术人员具有重要的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《遗留系统现代化实战》,新⼈⾸单¥59
《遗留系统现代化实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- aoe还好,面试的时候不问存储过程,工作中大家也不写存储过程。庆幸没遇到有很多存储过程的系统2022-06-232
收起评论