存储过程一方面减少
网络数据流量,提高数据处理效率;另一方面在数据库层面进行事务处理和控制比在应用程序中使用分布式事务更高效、占用的资源更少;还有一个就是灵活性问题,设计良好的存储过程,当业务逻辑或规则发生变化时,可以不用修改软件代码,只需修改存储过程即可,这对于用户和软件开发商来讲,可以降低维护成本和升级花费;另外,扩展开来还有一个系统健壮性和安全性问题,在非电信级商业网络环境中(比如:大多数企业局域网),尽量减少设备节点和层次意味着更高的可靠性,尽量减少数据在网络上暴露和传输的机会意味着更高的安全性。
另外,使用存储过程有可能使得系统存在缺陷。存储过程的一个缺陷是对于非数据密集型运算其实是很低效的,可能会过多的占用DB Server的CPU资源,而使得性能强大的Application Server的计算能力被闲置;另外,对于强调协作的分布式应用来,计算能力的过于集中在一定程度上降低了灵活性,毕竟现在早已不是大型主机的时代。