`
talentluke
  • 浏览: 591080 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

存储过程优缺点

 
阅读更多

存储过程的优缺点:

优点:
1.由于应用程序随着时间推移会不断更改,增删功能,T-SQL过程代码会变得更复杂,StoredProcedure为封装此代码提供了一个替换位置。

2.执行计划(存储过程在首次运行时将被编译,这将产生一个执行计划-- 实际上是 Microsoft SQL Server为在存储过程中获取由 T-SQL 指定的结果而必须采取的步骤的记录。)缓存改善性能。
 但sql server新版本,执行计划已针对所有 T-SQL 批处理进行了缓存,而不管它们是否在存储过程中,所以没比较优势了。

3.存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量T-sql语句的代码流量。

4.使用存储过程使您能够增强对执行计划的重复使用,由此可以通过使用远程过程调用 (RPC) 处理服务器上的存储过程而提高性能。RPC 封装参数和调用服务器端过程的方式使引擎能够轻松地找到匹配的执行计划,并只需插入更新的参数值。

5.可维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。

6.代码精简一致,一个存储过程可以用于应用程序代码的不同位置。

7.更好的版本控制,通过使用 Microsoft Visual SourceSafe 或某个其他源代码控制工具,您可以轻松地恢复到或引用旧版本的存储过程。

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


缺点:

1.如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较繁琐了。

2.可移植性差

由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则将业务逻辑封装在不特定于 RDBMS 的中间层中可能是一个更佳的选择。 


3.   大量采用存储过程进行业务逻辑的开发致命的缺点是很多存储过程不支持面向对象的设计,无法采用面向对象的方式将业务逻辑进行封装,从而无法形成通用的可支持复用的业务逻辑框架。

4.代码可读性差,相当难维护.

分享到:
评论

相关推荐

    存储过程的优点

    存储过程的优点

    存储过程优缺点分析

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

    gridview+存储过程源代码

    包括分页存储过程,前台后台代码 ,的完整例子。并介绍了改存储过程的优缺点。

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

    # 举例分析MATLAB中的cell数组,优缺点解析 在MATLAB中,cell数组是一种特殊的数据类型,可以存储不同类型的数据,如数值、字符串、逻辑值、结构体等等。下面我们来举例分析MATLAB中的cell数组,以及它的优缺点。 ...

    计算机辅助设计的优缺点与发展.docx

    计算机辅助设计的优缺点与发展 计算机辅助设计的优缺点与发展 1、 计算机辅助设计的发展 计算机辅助设计的研究构想发端于1950年,但最早记录是在 1963年。出现了这套以电脑主机、显示屏、光电笔和键盘为工具的 图形...

    PLSQL存储过程.doc

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

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

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

    二分查找的优缺点以及举例

    它要求线性表必须采用顺序存储结构,且表中元素按关键字有序排列。二分查找充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。 其基本原理是:首先,将目标元素与查找范围的中间...

    java开发面试必问_自我总结.docx

    索引、存储过程、函数语法及各自的优缺点。等 电商系列问题:产品详情页;静态化介绍;支付;商品管理模块;报表统计;统计分析模块。等 非专业知识: 大学情况; 上家公司; 有没有上过保险; 没有上五险一金的原因...

    深入分析SQL Server 存储过程

    本文给大家详细介绍了sqlserver的存储过程,包括存储过程的概念、优缺点、系统存储过程、用户自定义存储过程等方面的内容了,有需要的小伙伴可以参考下。

    sql总结.doc

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

    Oracle-SQL基础到存储过程下载(第三阶段)

    044.sql对象_表空间.mp4 045.sql对象_用户.mp4 046.sql对象_建表授权同义词.mp4 047.sql对象_序列.mp4 048.sql对象_普通视图.mp4 049.sql对象_物化视图.mp4 050.sql对象_索引介绍.mp4...058.sql对象_表分区的优缺点.mp4

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

    主要介绍了mysql存储过程原理与使用方法,结合实例形式详细分析了mysql存储过程的优缺点、定义、调用方法及相关操作注意事项,需要的朋友可以参考下

    第六章:MySQL高级进阶-存储过程及基本使用

    存储过程及基本使用 #1、什么是存储过程?...存储过程的优缺点: #2、示例代码如下: 求两数之和: delimiter // create procedure my_sum(in a int,in b int,out result int) begin set result =a+b; en

    DSP 语音压缩存储与回放实验报告

    (1)使用DSP实现语音压缩和解压缩的基本算法,算法类型自定,例如可以采用G.711、G.729等语音压缩算法。 (2)采用A/D转换器从MIC输入口实时采集...使用多种算法进行语音的压缩、存储和解压缩,比较它们之间的优缺点。

    asp中存储过程的编写和应用

    基于Web的动态网页设计必会涉及到页面间的数据传递,文章探讨了ASP设计中常用的Web页面间的数据传递方式,分析各种数据传递方式的使用方法、使用场合及优缺点,其都是设计阶段选择数据传递方式考虑的关键。

    数据库原理及应用MySQL-触发器部分的知识点整理

    数据库原理及应用MySQL中触发器部分有关的知识点整理,包括再MySQL中创建、删除、查看触发器的相关知识点,并包括相关的...其实触发器就是一种较为特殊的存储过程,其中还有触发器的优缺点和关于存储过程的部分提及。

    论文研究-管理信息存储与传输优化设计.pdf

    详细介绍了面向应用软件的网络监控系统管理信息存储与传输优化设计过程,包括三种存储设计方案及其优缺点的比较,内存映射文件的存储数据结构设计,三种可逆转换规则的分析与比较以及根据优化的可逆转换规则设计的...

    RS&LDPC.zip

    C++实现,RS码与LDPC码 功能:k,r自主输入,随机生成数据,完成编码,产生错误,纠错译码的过程。

Global site tag (gtag.js) - Google Analytics