存储过程我的理解,就是将一些业务逻辑封装,运行在数据库中。
就像是用SQL写一个Java中的方法,可以有参数,返回值,变量等。
这样的好处目前我想到的是:
将多条SQL语句,
- 如果应用服务器和数据库服务器不在同一内网,或者说网络传输速度慢,可以把一部分业务逻辑放在数据库服务器中运行,避免在网络传输过程中造成的延迟,提高效率
- 如果应用的代码比较老,比如之前我接手的一个项目使用的是Struts1框架,再结合当时的开发人员自己基于JDBC封装的一些方法实现的CRUD。想看懂,梳理代码的业务逻辑有些困难。这时就可以在存储过程编写一些业务逻辑,封装到存储过程中。SQL相较于不同框架,不同语言更容易被后续的开发人员看懂。方便维护。
- 还有一种情况,应用服务器配置不高,且应用开发时没有考虑到扩展,业务量上来之后出现卡顿。这时如果数据库所在服务器配置可以升级。可以在存储过程编写一些业务逻辑,将多条SQL语句在一个存储过程中完成,减轻应用服务器压力。当然我觉得这种情况还是趁早重构应用,或者想想其他的办法。
参考
https://www.cnblogs.com/wiggin-Z/p/10614497.html