你为什么(不)用存储过程?

Posted 尘世书童

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你为什么(不)用存储过程?相关的知识,希望对你有一定的参考价值。

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。

结合工作和网上 查到的资料,列一下特点,看你是否需要存储过程。

优点:

1、存储过程允许标准组件式编程(模块化设计),可重复使用,易于维护:创建时进行编译,以后执行时不需要重新编译;而且数据库专业人员可随时对存储过程进行修改,但对应用程序源代码毫无影响。因为应用程序源代码只包含存储过程的调用语句,从而极大地提高了程序的可移植性。导出SQL执行脚本时,可以导出存储过程,包括函数。

2、存储过程能够实现快速的执行速度:

2、减少网络流量。调用时,只要传参存储过程名称和数就可以了,降低网络数据量。

3、安全性。防止SQL注入,设定用户使用权限。

缺点:

1、存储过程能够实现业务逻辑,这个是它的一个优点,但是会导致定位问题困难。自己就曾经苦恼于存储过程的执行报错,问题分析,一层一层剥离,或者加print,看执行到哪一步,定位问题。

2、违反面向对象规则,面对复杂的业务逻辑,过程化的处理会很吃力。大量使用加重了数据库的负担,因为SQL擅长的是数据查询而并非业务逻辑处理。自己刚开始接触存储过程时就误入了这样的雷区,好多判断,计算放到存储过程中计算;导致数据库操作执行速度慢。

相关网页链接:sql存储过程完全教程

存储过程到底有什么用

以上是关于你为什么(不)用存储过程?的主要内容,如果未能解决你的问题,请参考以下文章

sql server存储过程产生连续不重复编号

2008SQL 存储过程中可以创建视图吗

​oracle存储过程怎样重命名,除了用or replace 还有什么

存储过程中如何使用Case嵌套

存储过程

sql 存储过程输入参数个数不定的写法