## 优点 1. 更好性能 * 存储过是预编译的,在创建时编译;一般SQL是每次执行都会编译
2. 功能实现更加灵活 * 存储过程可以使用条件判断和游标,有很强的灵活性,还可以使用数据库内置函数,完成复杂的判断和运算 3. 减少网络传输 * 复杂的多条SQL操作会消耗大量的网络传输,多条SQL存入存储过程会降低网络负载 4. 安全性 * 存储过程可以屏蔽对底层数据库对象的直接访问 * 执行过程的调用是可见的,无法看到表结构和数据库,不能嵌入SQL,有助于避免SQL注入
缺点 1. 架构不清晰,不够面向对象 2. 开发和维护要求比较高 3. 可移植性差
选择 1. 事务涉及多个SQL语句或者操作多个表可以选择使用存储过程 2. 事务完成很复杂的逻辑可以考虑使用存储过程 3. 比较复杂的统计或汇总可以应用存储过程