存储过程是SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快。
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。(第一次执行是需要编译的,所有速度慢)
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。(多条语句做一个单元处理。受相同的事务控制,要么都成功,要么都失败)
3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。(服务商省钱)
4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。
可选控制流语句
1、程序块语句BEGIN…END
2、判断语句IF…ELSE
3、循环语句WHILE4、分支判断语句CASE
4、分支判断语句CASE
5、无条件退出语句RETURN
6、无条件跳转语句GOTO
7、延期执行语句WAITFOR