`

存储过程的优点和缺点

阅读更多
一:存储过程介绍

存储过程是由一些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序调用,也可以从另一个过程或触发器调用。它的参数可以被传递和返回。与应用程序中的函数过程类似,存储过程可以通过名字来调用,而且它们同样有输入参数和输出参数。

  根据返回值类型的不同,我们可以将存储过程分为三类:返回记录集的存储过程,返回数值的存储过程(也可以称为标量存储过程),以及行为存储过程。顾名思义,返回记录集的存储过程的执行结果是一个记录集,典型的例子是从数据库中检索出符合某一个或几个条件的记录;返回数值的存储过程执行完以后返回一个值,例如在数据库中执行一个有返回值的函数或命令;最后,行为存储过程仅仅是用来实现数据库的某个功能,而没有返回值,例如在数据库中的更新和删除操作。

二:使用存储过程的优点

相对于直接使用SQL语句,在应用程序中直接调用存储过程有以下好处:

  (1)减少网络通信量。调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会有很大的差别,可是如果存储过程包含上百行SQL语句,那么其性能绝对比一条一条的调用SQL语句要高得多。

  (2)执行速度更快。有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化。其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用。

  (3)更强的适应性:由于存储过程对数据库的访问是通过存储过程来进行的,因此数据库开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动,而这些改动不会对应用程序造成影响。

  (4) 布式工作:应用程序和数据库的编码工作可以分别独立进行,而不会相互压制

    (5).增强安全性:
       a、通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问;
       b、提高代码安全,防止 SQL注入(但未彻底解决,例如,将数据操作语言--DML,附加到输入参数);
       c、SqlParameter 类指定存储过程参数的数据类型,作为深层次防御性策略的一部分,可以验证用户提供的值类型(但也不是万无一失,还是应该传递至数据库前得到附加验证)。

三:使用存储过程的缺点:

1.如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较繁琐了。
2.可移植性差
  使用存储过程封装业务逻辑将限制应用程序的可移植性。


资料参考:http://gnn.iteye.com/blog/480090
分享到:
评论

相关推荐

    存储过程的优点

    存储过程的优点

    SQL 存储过程 procedure 讲解+代码实例

    存储过程的优点4.1.2. 存储过程的缺点4.2. 创建存储过程 create procedure4.2.1. 参数 in、out、inout4.3. 调用存储过程 call4.4. 查看存储过程4.4.1. 查看存储过程的状态4.4.2. 查看存储过程的

    存储过程优缺点分析

    存储过程的优缺点: 存储过程优点: 1.由于应用程序随着时间推移会不断更改,增删功能,T-SQL过程代码会变得更复杂,StoredProcedure为封装此代码提供了一个替换位置。 2.执行计划(存储过程在首次运行时将被编译,...

    细谈Mysql的存储过程和存储函数

    1.2 存储过程的优缺点 优点: 1.可增强sql语言的功能和灵活性 存储过程可以用流程控制语言编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 2.良好的封装性 存储过程被创建后,可以在程序中被多次调用,...

    PLSQL存储过程.doc

    答:优点: 1) 结构化模块化编程,不是面向对象; 2) 良好的可移植性(不管Oracle运行在何种操作系统); 3) 良好的可维护性(编译通过后存储在数据库里); 4) 提升系统性能; 缺点 1) 不便于向异构数据库移植应用...

    mysql存储过程原理与使用方法详解

    存储过程的优点 #1. 用于替代程序写的SQL语句,实现程序与sql解耦 #2. 可以通过直接修改存储过程的方式修改业务逻辑(或bug),而不用重启服务器 #3. 执行速度快,存储过程经过编译之后会比单独一条一条执行要快 #4...

    mysql存储过程快速了解

    存储过程 优点: 提高开发效率,提高应用程序的性能,简化程序开发人员的操作,减少应用程序和是数据库服务器之间的流量。 缺点: 难以调试,开发和维护难度高,增加数据库服务器开销。 创建存储过程及其一些相关...

    15.Oracle存储过程1

    1、存储过程的优点1)重复使用:存储过程可以重复使用,从而可以减少数据库开发人员的工作量 2、存储过程的缺点1)调试麻烦,但是用 PL/SQL Develope

    存储过程

    3、存储过程优点: 1.允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。 2.如果某次操作需要执行多次SQL ,使用存储过程比单纯SQL语句执行要快。 3.可重复使用,能减少网络流量,还具有安全性...

    MySQL 存储过程的基本用法介绍

    我们大家都知道MySQL 存储过程是从 MySQL 5.0 开始逐渐增加新的功能。存储过程在实际应用中也是优点大于缺点。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程。

    大数据的存储和管理.pdf

    因此,对NoSQL最普遍的解释是"⾮关系型的",强调键值存储和⽂档数据库的优点,⽽不是单纯地反对关系 型数据库。 传统关系型数据库在处理数据密集型应⽤⽅⾯显得⼒不从⼼,主要表现在灵活性差、扩展

    sql总结.doc

    ·存储过程的优缺点 ·存储过程的应用场景 3、触发器 ·什么是触发器 ·触发器的的基本写法 ·触发器的功能 ·触发器的优缺点 ·触发器的两种形式 ·触发器的应用场景 4、视图 ·什么是视图 ·视图的基本写法 ·...

    爬虫开发是指编写程序来自动获取网页上的信息,并将其存储或分析的过程

    爬虫开发是指编写程序来自动获取网页上的信息,并将其存储或分析的过程。在网络信息爆炸的时代,爬虫开发扮演着重要的角色,但它也存在一些优点和缺点。

    自己收集比较强大的分页存储过程 推荐

    ) 朋友的比较好的存储过程。优点是:性能非常的高,每次查询都是根据ID查询,每次都是对一半的数据进行分页。缺点是:当有多个排序条件时,分页数据显示会出现问题。(该问题在第二个网友的分页存储过程中有解决的...

    论文研究-液晶屏模糊边缘缺陷分布式检测方法.pdf

    第六代液晶屏在生产过程中会产生多种类型的缺陷,通过单机进行缺陷检测存在存储资源和计算时间的瓶颈。利用Hadoop集群优势处理海量的高分辨率液晶屏图像是一个新的思路。针对线阵CCD(charge-coupled device)相机...

    SQL经典面试题目

    答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用...

    论文研究-基于MapReduce的液晶屏缺陷检测方法.pdf

    5th液晶屏在生产过程中会产生多种类型的缺陷,通过单一节点进行缺陷检测存在存储资源和计算时间的瓶颈。利用Hadoop集群的分布式计算、存储能力处理海量的高分辨率液晶屏图像是一个新的思路。针对高分辨液晶屏图像...

    .NET程序修改记录插件 V1.1

    优点:存储过程一目了然;缺点:记录麻烦,而且需要针对不同的项目建立不同的文件夹 第三代:用插件记录(也就是目前的这一代),将所有项目整合到一个Excel文件中,而且通过GUID来标记所修改的每一行,这样就可以...

    论文研究-基于HBase的列存储压缩策略的选择优化.pdf

    为解决现有列存储数据库压缩策略在压缩过程中遇到的数据离散程度大、分类粒度小、配套分类算法缺陷导致的学习成本高、压缩效率难以保证的问题,提出了一种基于排序的列区混合压缩策略。首先根据HBase特点设计了一种...

    举例分析MATLAB中的cell数组,优缺点解析.pdf

    在这个过程中,我们使用了花括号 `{}` 来访问和修改每一个元素。 ## 优缺点解析 MATLAB中的cell数组有以下优点: - 可以存储不同类型的数据,方便灵活; - 可以用于存储复杂的数据结构,如结构体、对象等; - ...

Global site tag (gtag.js) - Google Analytics