什么是存储过程,存储过程的作用及优点
2016-10-11 09:16
375 查看
存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库。中用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
相对于直接使用SQL 语句,在应用程序中直接调用存储过程有以下好处:
(1)减少网络通信量。
调用一个行数不多的存储过程与直接调用SQL 语句的网络通信量可能不会有很大的差别,可是如果存储过程包含上百行SQL 语句,那么其性能绝对比一条一条的调用SQL 语句要高得多。
(2)执行速度更快。
有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化。其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用。
(3)更强的适应性。
由于存储过程对数据库的访问是通过存储过程来进行的,因此数据库开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动,而这些改动不会对应用程序造成影响。
(4) 分布式工作。
应用程序和数据库的编码工作可以分别独立进行,而不会相互压制。
缺点:
1.如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较繁琐了。
2.可移植性差
由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。
下面的博客是根据自己工作中总结的一些存储过程的博客:
Oracle存储过程之merge into 函数(一)
http://blog.csdn.net/z1729734271/article/details/52386664
Oracle存储过程之merge into 函数(二)
http://blog.csdn.net/z1729734271/article/details/52437856
oracle 存储过程之游标(loop)使用
http://blog.csdn.net/z1729734271/article/details/52351700
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而 一般SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速 度。 2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来 与数据库提供的事务处理结合一起使用。 3.存储过程可以重复使用,可减少数据库开发人员的工作量 4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权
相对于直接使用SQL 语句,在应用程序中直接调用存储过程有以下好处:
(1)减少网络通信量。
调用一个行数不多的存储过程与直接调用SQL 语句的网络通信量可能不会有很大的差别,可是如果存储过程包含上百行SQL 语句,那么其性能绝对比一条一条的调用SQL 语句要高得多。
(2)执行速度更快。
有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化。其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用。
(3)更强的适应性。
由于存储过程对数据库的访问是通过存储过程来进行的,因此数据库开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动,而这些改动不会对应用程序造成影响。
(4) 分布式工作。
应用程序和数据库的编码工作可以分别独立进行,而不会相互压制。
缺点:
1.如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较繁琐了。
2.可移植性差
由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。
下面的博客是根据自己工作中总结的一些存储过程的博客:
Oracle存储过程之merge into 函数(一)
http://blog.csdn.net/z1729734271/article/details/52386664
Oracle存储过程之merge into 函数(二)
http://blog.csdn.net/z1729734271/article/details/52437856
oracle 存储过程之游标(loop)使用
http://blog.csdn.net/z1729734271/article/details/52351700
相关文章推荐
- 浅谈对存储过程的理解:什么是存储过程,及它的优点等!
- 什么是存储过程,存储过程的优点。及使用。
- 什么是存储过程,存储过程的作用及好处
- 为什么要用存储过程,什么时候要用存储过程,存储过程的优点
- 编写存储过程的作用是什么?
- [置顶] 【mysql 存储过程】应用存储过程的优点与缺点
- 为什么要用存储过程,什么时候要用存储过程,存储过程的优点
- 存储过程的作用是什么?
- 什么是存储过程,为何需要存储过程,存储过程的种类
- 存储过程作用是什么,优缺点以及适用范围是什么?
- (转)MySQL 存储过程参数有三种类型:in、out、inout。它们各有什么作用和特点呢?
- 建立视图和存储过程到底能有什么作用和方便之处
- MySQL 存储过程参数有三种类型:in、out、inout。它们各有什么作用和特点呢?
- 遍历数据库中的用户存储过程,获得每个存储过程的参数名、参数类型、存储过程名称等信息以xml的形式保存
- 存储过程学习三(创建存储过程实例)
- 存储过程学习二(创建存储过程)
- C#中使用存储过程,C#分页存储过程
- 存储过程从入门到熟练(多个存储过程完整实例及调用方法)_AX
- 两种写法不同作用相同的存储过程
- 存储过程从入门到熟练(多个存储过程完整实例及调用方法)