存储过程的优点与缺点

优点:

1.维护方便,如果你把所需要执行的操作代码写在程序当中,那么要做一些小修改,也要对程序做修改并重新编译,对于用户来讲,这个时候就需要对程序加以深度测试(你说只修改了一点点,但是用户不会为你的一句话而冒风险的),存储过程相对来讲就简单得多,毕业逻辑上分离出来了,即使要进行审核,成本也远比程序要低得多;
2.重用性,一个设计好的存储过程,任何符合其输入和输出的程序都可以共用,同样也改善了维护工作,如果有10个程序要用到这个存储过程,那要做些修改,自然修改一个存储过程所花费的成本比程序要低得多;
3.分工的明确化.存储过程如果设计得当,就可以通过一个中间的适配器(Adapter)来调用,如此在将来进行数据库的迁移等,就可以把相应的工作交给具体的熟悉相关数据库等业务的人员,而不是所有的开发人员都要进行了解.就好比MSSQL/Oracle/DB2类似的,如果数据库操作脚本写在程序当中,那么迁移的工作量将会是所有可能的程序.如果是通过存储过程,那就可以交给相应的DBA等来完成;
4.存储过程的预编译,可能性使得语句的执行更优化,特别是对于类似Oracle等具备某些高级优化能力的,那么包括其既定的执行计划等可以带来相当的性能提升;
5.对于需要多次访问数据的复杂操作.如果写在程序当中,那么就需要不断的或者大量的提取数据库当中的数据到程序当中进行运算,而如果是使用存储过程,那么就减少了应用程序与数据库的交互次数,如此的消耗明显要低得多.

 

缺点:

.可移植性差 
由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则将业务逻辑封装在不特定于 RDBMS 的中间层中可能是一个更佳的选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL存储过程是在数据库服务器端创建和存储的一段可重用的代码,它可以被多个应用程序调用和执行。存储过程有以下优点缺点优点: 1. 提高性能:存储过程在数据库服务器端执行,减少了网络传输的开销,可以提高查询性能。 2. 代码重用:存储过程可以被多个应用程序调用和执行,避免了重复编写相同的代码,提高了开发效率。 3. 安全性:存储过程可以对数据进行权限控制,只允许特定用户或角色执行特定的操作,提高了数据安全性。 4. 减少数据传输:存储过程可以将复杂的数据处理逻辑放在服务器端执行,只将结果返回给客户端,减少了数据传输量。 缺点: 1. 学习成本高:存储过程需要使用特定的语法和语义,开发人员需要学习和掌握存储过程的使用方法。 2. 难以调试:由于存储过程是在数据库服务器端执行的,调试起来相对困难,需要使用专门的调试工具。 3. 依赖于数据库版本:不同版本的数据库对存储过程的支持程度可能有所不同,需要注意兼容性问题。 4. 难以维护:存储过程的逻辑和代码都在数据库服务器端,当需求变更或bug修复时,需要修改存储过程并重新部署,对数据库的维护和管理带来一定的复杂性。 综上所述,存储过程在某些情况下可以提供性能和安全性方面的优势,但也需要权衡其学习成本、维护复杂性和兼容性等因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值