①、什么是存储过程?
存储过程(Stored Procedure)是数据库系统中,一组为了完成特定功能的SQL语句集,
经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
在数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。
②、为什么要用存储过程?
优点:
1、存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2、当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3、存储过程可以重复使用,可减少数据库开发人员的工作量(复用性高,面向对象的编程思想)
4、安全性高,可设定只有某些用户才具有对指定存储过程的使用权。
缺点:
1、调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。
2、移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。
3、重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、将需要重新编译(不过也可以设置成运行时刻自动编译)。
4、如果在一个程序系统中大量的使用存储过程,到
存储过程(Stored Procedure)是数据库系统中,一组为了完成特定功能的SQL语句集,
经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
在数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。
②、为什么要用存储过程?
优点:
1、存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2、当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3、存储过程可以重复使用,可减少数据库开发人员的工作量(复用性高,面向对象的编程思想)
4、安全性高,可设定只有某些用户才具有对指定存储过程的使用权。
缺点:
1、调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。
2、移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。
3、重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、将需要重新编译(不过也可以设置成运行时刻自动编译)。
4、如果在一个程序系统中大量的使用存储过程,到