概述
存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
存储过程就是具有名字的一段代码,用来完成一个特定的功能,也就是数据库 SQL 语言层面的代码封装与重用。
作用
是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
简单来说,就是将SQL语句封装成函数方便后续调用。
优点
- 存储过程可封装,并隐藏复杂的商业逻辑。
- 存储过程可以用在数据检验,强制实行商业逻辑等。
- 由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比SQL语句高。
- 一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率
- 通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。
缺点
- 存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。
- 存储过程的性能调校与撰写,也受限于各种数据库系统。