概述
—-定义:
- 应用在大型数据库系统中,是SQL语句和流程控制语句的集合,经编译后存储在数据库系统中,用户通过指定存储过程的名字并给出参数(如果带有参数的话)来执行,类似高级语言中的函数。在创建时编译一次,以后执行时运行很快。
—-类型:
- a.系统存储过程,以sp_开头,用来进行系统的各项设定,取得信息及相关管理工作, 如 sp_help就是取得指定对象的相关信息。
- b.本地存储过程,由用户创建的存储过程,一般所说的存储过程就是指本地存储过程。
- c.扩展存储过程,以XP_开头,用户可以使用外部程序语言编写的存储过程,用来调用操作系统提供的功能。
—-优点:
- a.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
b.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。- c.存储过程可以重复使用,可减少数据库开发人员的工作量。
- d.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。
—-缺点:
- a. 调试麻烦。
- b. 移植问题,与具体数据库相关,需要考虑移植问题。在梅安森项目中需要考虑从SQLServer到PostgreSQL移植工作。
- c. 如果在应用程序中大量使用存储过程时,到程序交付给客户的时候,需要考虑系统的相关问题,维护代价大。