`
zhanshenlvbu
  • 浏览: 108871 次
社区版块
存档分类
最新评论

存储过程优缺点及使用原则

阅读更多

 

存储过程优缺点及使用原则

 

一.存储过程介绍

        存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE中,若干个有联系的过程可以组合在一起构成程序包。

 

二.存储过程优点

        1. 速度快。存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
        2. 写程序简单。采用存储过程调用类,调用任何存储过程都只要1-2行代码。
        3. 升级、维护方便。存储过程会使得维护起来更加方便,因为通常修改一个存储过程要比在一个已经发布的组件中修改SQL语句更加方便;
        4. 能够缓解网络带宽。因为可以批量执行SQL语句而不是从客户端发送超负载的请求。尤其对于较为复杂的逻辑,减少了网络流量之间的消耗。
        5. 可保证数据的安全性和完整性。通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。
        6. 增强安全性。
            a) 通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问。
            b) 提高代码安全,防止 SQL注入(但未彻底解决,例如,将数据操作语言--DML,附加到输入参数)。
            c) SqlParameter 类指定存储过程参数的数据类型,作为深层次防御性策略的一部分,可以验证用户提供的值类型(但也不是万无一失,还是应该传递至数据库前得到附加验证)。

 

三.存储过程缺点

        1. 可移植性差。由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则将业务逻辑封装在不特定于 RDBMS 的中间层中可能是一个更佳的选择。
        2. 代码可读性差,相当难维护。
        3. 不支持群集
        4. 大量采用存储过程进行业务逻辑的开发致命的缺点是很多存储过程不支持面向对象的设计,无法采用面向对象的方式将业务逻辑进行封装,从而无法形成通用的可支持复用的业务逻辑框架。
        5. 如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。

 

四.使用原则

        1. 当一个业务同时对多个表进行处理的时候采用存储过程比较合适。
        2. 复杂的数据处理用存储过程比较合适,如有些报表处理。
        3. 多条件多表联合查询,并做分页处理,用存储过程也比较适合。
        4. 使用存储过程,等需求变动,需要维护的时候,麻烦就来了。不应该大规模使用。
        5. 适当的使用存储过程,能够提高我们SQL查询的性能,以便于提高我们的工作效率。









                                                                                                                                            zhanshenlvbu
                                                                                                                                                  2011.8.31

 

 

分享到:
评论

相关推荐

    sql总结.doc

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

    精通sql结构化查询语句

    12.5.1 创建默认值 12.5.2 默认值的绑定与松绑 12.6 小结第5篇 T-SQL高级编程篇第13章 存储过程 13.1 存储过程概述 13.1.1 存储过程的基本概念 13.1.2 存储过程的优缺点 13.2 存储过程中常用的流控制语句 13.2.1 IF....

    学生成绩管理系统数据库设计.doc

    所以,在创建索引时,要综合考虑其优缺点。可以参考以下原则为表中 的列创建查询:(1)经常用于查询的列;(2)经常用于分组和排序的列;(3)在连接 中常用到的列。 按照以上原则,我们可以为以下列创建索引:Stu_...

    关系型数据库性能体系设计和效率提升.docx

    4.3 表分区的优缺点 12 4.4 分区表设计规范 12 4.2.1 不使用全局索引 12 4.2.2 RANGE分区的规范 12 4.2.3 LIST分区的规范 13 4.2.4 HASH分区的规范 13 4.2.5 RANGE-LIST分区的规范 14 4.2.6 RANGE-HASH分区的规范 14...

    MySQL面试题精选35题

    2.MySQL 查询缓存有什么优缺点? 3.MySQL 的常用引擎都有哪些? 4.常用的存储引擎 InnoDB 和 MyISAM 有什么区别? 5.什么叫回表查询? 6.如果把一个 InnoDB 表的主键删掉,是不是就没有主键,就没办法进行回表查询了...

    精通SQL 结构化查询语言详解

    4.3.2 视图的优缺点  4.4 视图的创建与销毁  4.4.1 基本创建语法  4.4.2 创建简单的视图  4.4.3 利用视图简化表的复杂连接  4.4.4 利用视图简化复杂查询 4.4.5 视图的销毁  4.4.6 使用视图的几点原则...

    精通SQL--结构化查询语言详解

    4.3.2 视图的优缺点 74 4.4 视图的创建与销毁 75 4.4.1 基本创建语法 75 4.4.2 创建简单的视图 75 4.4.3 利用视图简化表的复杂连接 78 4.4.4 利用视图简化复杂查询 79 4.4.5 视图的销毁 81 4.4.6 使用视图的...

    管理信息系统 课件

    4.管理信息系统各种开发方法的优缺点和适用场合 。 5.制订MIS战略规划常用方法(概念、两种方法的比较) 2)开发 1.系统分析的任务及内容(具体到各个环节) 2.系统分析阶段用到的主要工具(业务流程图、数据流程图...

    数据库物理设计.pdf

    1、⽤int来存储时间字段的优缺点: 优点;字段长度⽐datetime⼩。 缺点:使⽤不⽅⾯,要进⾏函数转换才能看懂。 限制:只能存储到2038-1-19 11:14:07。即2的32次⽅ 2、需要存储的时间粒度。 年 ⽉ ⽇ ⼩时 分 秒 周...

    sap R/3 业务蓝图——理解业务过程参考模型2

    2.1 业务蓝图的优缺点 15 2.2 R/3蓝图的常规设计 16 2.3 R/3蓝图的中心点 17 2.4 事件驱动的过程链方法(EPC) 17 2.5 描述复杂的业务过程 19 2.5.1 采购墨粉 20 2.5.2 招收新雇员 21 2.5.3 计划一次研讨会 ...

    MySQL数据库面试题(2020最新版)

    索引有哪些优缺点?索引使用场景(重点)索引有哪几种类型?索引的数据结构(b树,hash)索引的基本原理索引算法有哪些?索引设计的原则?创建索引的原则(重中之重)创建索引的三种方式,删除索引创建索引时需要...

    asp.net知识库

    也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息...

    电子商务毕业设计论文

    1.4 BtoC电子商务的优缺点 3 1.5系统开发的背景、必要性和意义 3 第2章 总体规划 4 2.1 概述 4 2.2 系统目标 4 2.2.1近期目标 4 2.2.2远期目标 4 2.3 系统方案 4 2.3.1 系统的几种方案介绍 4 2.3.2 系统的几种方案...

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    用于灾难恢复的高级存储备份优缺点 优点: 缺点: 保护级别: 保护级别本来就很高,而且可以通过耦合存储子系统来提高保护级别。 数据丢失的风险: 如果采用双日志记录和用户出口程序,会大大降低数据丢失的...

    C++代码设计与重用

    9.1.1 可移植性的优缺点 9.1.2 目标代码和创建过程的可移植性 9.2 不断发展的语言定义 9.2.1 冲突 9.2.2 实现的完整性 9.3 不确定的行为 9.3.1 排列方式和补全(padding) 9.3.2 地址操纵 9.4 合法但不可...

    《计算机操作系统》期末复习指导

    (4)页式存储管理的优、缺点 优点: •虛存量大,适合多道程序运行,用户不必担心内存不够的调度操作; •内存利用率高,不常用的页面尽量不留在内存; •不要求作业连续存放,有效地解决了...

    仓储管理(1)(2)主编:李万秋

    (二)自动化立体仓库的优缺点 26 第2节 仓库的选址 27 一、仓库选址需考虑的因素 27 (一)经济环境因素 27 (二)自然环境因素 28 (三)政策环境因素 28 二、仓库选址的技术方法 28 (一)单一仓库的选址 28 (二)多个仓库的...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    11.1.3 LVS集群系统的优缺点 11.2 高可用 LVS负载均衡集群体系结构 11.3 高可用性软件Heartbeat与Keepalived 11.3.1 开源HA软件Heartbeat的介绍 11.3.2 安装heartbeat 11.3.3 开源HA软件Keepalived的介绍...

    仓储管理(1)(2)主编:李万秋(2)

    (二)自动化立体仓库的优缺点 26 第2节 仓库的选址 27 一、仓库选址需考虑的因素 27 (一)经济环境因素 27 (二)自然环境因素 28 (三)政策环境因素 28 二、仓库选址的技术方法 28 (一)单一仓库的选址 28 (二)多个仓库的...

    数据结构课程设计--排序算法性能分析

    内部排序的方法很多,但是就其全面性能而言,很难 提出一种被认为是最好的方法,每一种方法都有各自的优缺点,适合在不同的环境下使用。如果按排序过程中依据的不同原则对内部排序方法进行分类,则大致可分为插入...

Global site tag (gtag.js) - Google Analytics