存储过程 (Stored Procedure) 是在大型数据库系统中, 一组为了完成特定功能的 SQL 语句集, 存储在数据库中, 经过第一次编译后再次调用不需要再次编译, 用户通过指定存储过程的名字并给出参数 (如果该存储过程带有参数) 来执行它. 存储过程是数据库中的一个重要对象.
结合工作和网上 查到的资料, 列一下特点, 看你是否需要存储过程.
优点:
1, 存储过程允许标准组件式编程(模块化设计), 可重复使用, 易于维护: 创建时进行编译, 以后执行时不需要重新编译; 而且数据库专业人员可随时对存储过程进行修改, 但对应用程序源代码毫无影响. 因为应用程序源代码只包含存储过程的调用语句, 从而极大地提高了程序的可移植性. 导出 SQL 执行脚本时, 可以导出存储过程, 包括函数.
2, 存储过程能够实现快速的执行速度:
2, 减少网络流量. 调用时, 只要传参存储过程名称和数就可以了, 降低网络数据量.
3, 安全性. 防止 SQL 注入, 设定用户使用权限.
缺点:
1, 存储过程能够实现业务逻辑, 这个是它的一个优点, 但是会导致定位问题困难. 自己就曾经苦恼于存储过程的执行报错, 问题分析, 一层一层剥离, 或者加 print, 看执行到哪一步, 定位问题.
2, 违反面向对象规则, 面对复杂的业务逻辑, 过程化的处理会很吃力. 大量使用加重了数据库的负担, 因为 SQL 擅长的是数据查询而并非业务逻辑处理. 自己刚开始接触存储过程时就误入了这样的雷区, 好多判断, 计算放到存储过程中计算; 导致数据库操作执行速度慢.
来源: http://www.bubuko.com/infodetail-2608841.html