存储进程(Stored Procedure)是一组为了完结特定功用的SQL 句子集,经编译后存储在数据库。中用户经过指定存储进程的姓名并给出参数(假如该存储进程带有参数)来履行它。
1.存储进程只在发明时进行编译,今后每次履行存储进程都不需再从头编译,而
一般SQL 句子每履行一次就编译一次,所以运用存储进程可进步数据库履行速
度。
2.当对数据库进行杂乱操作时(如对多个表进行
Update,Insert,Query,Delete 时),可将此杂乱操效果存储进程封装起来
与数据库供给的事务处理结合一同运用。
3.存储进程能够重复运用,可削减数据库开发人员的作业量
4.安全性高,可设定只要某此用户才具有对指定存储进程的运用权
1
2
3
4
5
6
7
8
相对于直接运用SQL 句子,在应用程序中直接调用存储进程有以下优点:
(1)削减网络通信量。
调用一个行数不多的存储进程与直接调用SQL 句子的网络通信量或许不会有很大的不同,但是假如存储进程包括上百行SQL 句子,那么其功能绝比照一条一条的调用SQL 句子要高得多。
(2)履行速度更快。
有两个原因:首要,在存储进程创立的时分,数据库现已对其进行了一次解析和优化。其次,存储进程一旦履行,在内存中就会保存一份这个存储进程,这样下次再履行相同的存储进程时,能够从内存中直接调用。
(3)更强的适应性。
因为存储进程对数据库的拜访是经过存储进程来进行的,因而数据库开发人员能够在不改动存储进程接口的情况下对数据库进行任何改动,而这些改动不会对应用程序形成影响。
(4) 分布式作业。
应用程序和数据库的编码作业能够别离独立进行,而不会彼此约束。
缺陷:
1.假如更改规模大到需求对输入存储进程的参数进行更改,或许要更改由其回来的数据,则您仍需求更新程序会集的代码以增加参数、更新 GetValue() 调用,等等,这时分估量比较繁琐了。
2.可移植性差
因为存储进程将应用程序绑定到 SQL Server,因而运用存储进程封装事务逻辑将约束应用程序的可移植性。