一:存储过程介绍
存储过程是由一些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
分享到:
相关推荐
### 存储过程的优点 #### 一、提升执行效率 1. **编译优势**:存储过程在创建时仅编译一次,之后每次执行时都无需再次编译。相比之下,一般的SQL语句每次执行都需要重新编译。这种差异使得存储过程能够显著提高...
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...
DB2 SQL存储过程基础 DB2 存储过程是指在 DB2 服务器端编写、执行的程序单元,可以实现业务逻辑、数据...通过学习存储过程的基本概念、优点、缺点、应用场景和开发特性,我们可以更好地应用存储过程来实现业务需求。
存储过程的优点包括: 1. 封装性:存储过程可以将多个 SQL 语句封装在一起,方便调用和维护。 2. 可增强 SQL 语句的功能和灵活性:存储过程可以包含复杂的逻辑和计算,超过了单个 SQL 语句的能力。 3. 可减少网络...
在Oracle数据库中,存储过程、游标和函数是非常重要的组成部分,它们为数据库管理提供了强大的编程能力。通过学习这些概念,我们可以更加灵活地管理和操作数据库数据。 ##### 1.1 存储过程 存储过程是一组预先编译...
存储过程的优点包括: 1. **性能提升**:由于预先编译,执行速度快。 2. **代码复用**:减少重复的SQL代码,提高开发效率。 3. **安全性**:可以限制对数据的访问,通过存储过程控制权限。 4. **数据一致性**:通过...
### 精通MySQL存储过程和函数 #### 1. 说明 ##### 1.1 手册适用范围 本手册适用于对MySQL存储过程和函数感兴趣的开发者和技术人员,特别是那些希望深入了解并掌握如何在实际项目中高效利用这些功能的专业人士。...
存储过程的特点包括提高执行效率、减少网络流量、增强安全性、支持事务处理机制、代码分离等,同时也存在不易移植和修改的缺点。 ### 存储过程的性能优势 存储过程在执行前已被编译,存储在数据库的内存中,因此当...
存储过程的优点有: * 能减少客户端和服务器端之间的数据传输 * 将数据库逻辑与应用程序逻辑隔离开 * 能返回多个结果集 * 如果被应用程序调用,运行起来存储过程就像应用程序的一部分 缺点有: * 不能被 SQL 语句...
本文将深入探讨"gridview+存储过程"的源代码实现及其优缺点。 首先,存储过程(Stored Procedure)是预编译的SQL语句集合,存储在数据库中,可以被多次调用。在分页场景下,使用存储过程可以减少网络传输的数据量,...
存储过程是数据库系统中的一个重要组成部分,它允许开发者将一系列的SQL操作封装在一起,形成一个可重用的代码单元,从而提高应用程序的性能和效率。 在数据库设计中,存储过程有以下几个关键知识点: 1. **定义与...
存储过程(Stored Procedures)能够为应用程序提供显著的优势,包括但不限于提高性能、代码重用、增强安全性和确保数据完整性。**IBM DB2 家族** 一直以来都支持存储过程,并且随着每个版本的更新不断进行功能强化。...
存储过程有以下优点:提高性能(因为预编译)、降低网络通信(一次传输多个操作)、增强安全性(可以设置权限控制)。然而,存储过程的维护和调试相对复杂,且不同数据库系统的语法可能有所不同。 这三种方法各有优...
存储过程和存储函数的优点包括: 1. 性能提升:由于编译后存储在数据库中,存储过程可以减少应用程序与数据库服务器之间的通信次数,有效降低网络负载。 2. 可复用性:存储过程可以在不同的应用程序中多次调用,避免...
* 存储过程的优点和缺点 * 触发器的优点和缺点 * 用户自定义函数的优点和缺点 * 存储过程的创建和使用 * 触发器的创建和使用 * 用户自定义函数的创建和使用 实验结果: * 存储过程的实验结果 * 触发器的实验结果 *...
在本文中,我们将探讨存储过程的概念、优点、缺点以及如何在MFC中使用ADO(ActiveX Data Objects)技术来调用存储过程。 首先,了解存储过程的基本概念。存储过程存储在数据库中,用户可以通过指定名称和参数来调用...
存储过程的优点4.1.2. 存储过程的缺点4.2. 创建存储过程 create procedure4.2.1. 参数 in、out、inout4.3. 调用存储过程 call4.4. 查看存储过程4.4.1. 查看存储过程的状态4.4.2. 查看存储过程的
存储过程的优点包括提高性能、简化复杂的业务逻辑以及增强安全性等。在本例中,我们有两个存储过程:`CunChuFenYe` 和 `Common_Page`。 ### 二、存储过程CunChuFenYe的实现 #### 1. 参数说明 - **@PageSize**: 每...
本文将详细探讨“模拟设计物理文件的存储过程”,重点分析连续文件和索引文件这两种常见的文件组织方式。 首先,我们要了解什么是物理文件的存储过程。在数据库中,数据是以文件的形式存在于磁盘上,物理文件的存储...
1. **系统存储过程**:由数据库系统提供的预定义存储过程,主要用于管理数据库对象和执行系统任务。 2. **扩展存储过程**:通常用于提供额外的功能,如文件操作等。MySQL本身并不支持此类存储过程。 3. **用户自定义...