SQL存储过程有什么好处

 我来答
酒深不怕巷子深
2018-03-21 · TA获得超过3270个赞
知道小有建树答主
回答量:267
采纳率:95%
帮助的人:239万
展开全部

优点:

  1. 离数据最近,某些情况下可获得更好性能

  2. 减少应用复杂度及应用服务器压力

  3. 需要显式调用,不会像触发器那样出现问题难以定位

  4. 使用方便

缺点:

  1. 增加数据库服务器压力。相当于将应用压力转嫁到数据库上,而应用服务器更容易扩展,也就是说大部分情况下数据库服务器资源比应用服务器资源更加珍贵。

  2. 增加网络开销。如存储过程存取数据量较大,会造成较大网络开销。

  3. 可移植性差。如系统有多中数据库,或从某种数据库迁移到另一种数据库,则很有可能遇到兼容性问题。

  4. 导致多处存在业务逻辑。存储过程某种程度就是将本应放在应用侧处理的业务逻辑放到数据库处理,这会导致业务逻辑存在于多个地方,增加调试维护困难。

  5. 在高并发系统中很可能会导致数据库压力瞬间增大。

  6. 存储过程中的复杂运算会大量消耗数据库服务器资源。

总结:

一般情况下尽量少用或不用存储过程,特别是在一个并发较高架构复杂的大型系统中,更是要减少存储过程的使用,业务逻辑的工作就应该由应用服务器处理,而不是交给数据库。很多时候存储过程确实可以快速解决问题,但它的维护性、扩展性、移植性等都不好。如果你的系统很小,架构比较简单,并且开发人员对存储过程熟悉,那么可以考虑使用存储过程减少工作量;但随着系统增加,架构变复杂,开发人员越来越多,这时存储过程的存在可能会导致更多的问题。当然,定时ETL或报表统计之类的任务,还是可以考虑使用存储过程来做的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式