`
talentluke
  • 浏览: 604785 次
  • 性别: 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. **编译优势**:存储过程在创建时仅编译一次,之后每次执行时都无需再次编译。相比之下,一般的SQL语句每次执行都需要重新编译。这种差异使得存储过程能够显著提高...

    存储过程优缺点分析

    以下是对存储过程优缺点的详细分析: 优点: 1. **封装性**:存储过程将复杂的T-SQL代码封装起来,使得代码管理更加有序,避免了应用程序代码的过度复杂化。 2. **执行计划缓存**:虽然新的SQL Server版本已经对...

    iSCSI优缺点

    iSCSI 磁盘阵列的优缺点 iSCSI 磁盘阵列是一种非常适合中小型企业应用的存储解决方案,它具有价格低廉、管理机制和部署过程相对简单等优点。但是,iSCSI 磁盘阵列也存在一些不容忽视的缺点,例如性能相对较差、技术...

    mysql存储过程教程

    五、存储过程的优缺点 优点: - 提高性能:预编译的SQL语句可以减少解析时间。 - 代码复用:存储过程可以多次调用,减少重复编写SQL。 - 安全性:可以通过权限控制限制对数据库的直接访问。 - 减少网络流量:存储...

    深度学习优缺点的剖析.pdf

    然而,深度学习同样存在一些固有的缺点和挑战,本文将从多个角度对深度学习的优缺点进行剖析。 首先,深度学习相较于传统机器学习方法有着拟合能力强的优点。在处理复杂的非线性问题时,深度学习模型能够通过多层...

    jdbc的优缺点 喜欢java的欢迎下载

    ### JDBC的优缺点 #### JDBC简介 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,它可以为多种关系...了解这些优缺点有助于开发者更好地利用JDBC,同时也能更有效地解决开发过程中遇到的问题。

    说一下plc的优缺点

    ### PLC的优缺点详解 #### 一、PLC的优点 **1. 配置方便** - **灵活性高**:根据控制系统的需求,用户可以轻松选择不同厂商的PLC、不同类型及所需的各种模块。市场上通常能够迅速购买到所需硬件,极大地提高了...

    c语言排序方法优缺点ppt

    **C语言排序方法详解及其优缺点** 在计算机科学中,排序是处理数据的重要步骤,它使得数据有序,便于检索和分析。C语言作为基础且强大的编程语言,提供了多种排序算法供程序员选择。以下是对几种常见C语言排序方法...

    翻页存储过程

    #### 四、存储过程优缺点分析 1. **优点**: - 提高了数据处理的灵活性,可以根据不同的需求调整分页逻辑。 - 代码结构清晰,易于维护。 - 能够减少网络传输的数据量,提高响应速度。 2. **缺点**: - 动态SQL...

    分页存储过程

    #### 六、存储过程优缺点 **优点**: - 动态构建SQL语句,提高了灵活性。 - 通过存储过程封装了复杂的分页逻辑,简化了客户端代码。 - 支持返回总记录数,方便前端显示页码信息。 **缺点**: - 使用动态SQL可能存在...

    线性表的优缺点

    线性表的优缺点 线性表是一种基本的数据结构,分为顺序表示和链式表示两种形式。了解线性表的优缺点对选择合适的数据结构至关重要。 顺序表的优缺点 顺序表是一种顺序存储的数据结构,存储元素在连续的存储空间中...

    INFORMIX存储过程手册

    #### 使用存储过程的优缺点 存储过程的主要优势在于简化应用程序的复杂度、提升性能(特别是在重复执行相同任务时)、增强安全性、强制执行业务规则以及减少代码维护工作。然而,存储过程也存在性能缺陷,例如首次...

    使用CAD技术的优缺点.pdf

    接下来,我们将从CAD技术的优点和缺点两个方面进行详细分析。 **CAD技术的优点** 1. **劳动强度降低,图面整洁** 手工绘图需要图纸、绘图板、各种规格的笔以及尺具,而在使用CAD软件后,设计师仅需使用鼠标或者...

    存储过程的一些资料

    **优缺点** 存储过程的优点包括: 1. **性能提升**:由于预先编译,执行速度快。 2. **代码复用**:减少重复的SQL代码,提高开发效率。 3. **安全性**:可以限制对数据的访问,通过存储过程控制权限。 4. **数据一致...

    大华和海康的优点和缺点.pdf

    通过对大华和海康的优点和缺点的分析,我们可以看到两家公司的产品都有其优缺。在选择监控设备时,用户需要根据自己的需求和预算来选择合适的产品。 大华和海康的监控设备在技术上有哪些差异? 1. 图像处理技术:...

    gridview+存储过程源代码

    本文将深入探讨"gridview+存储过程"的源代码实现及其优缺点。 首先,存储过程(Stored Procedure)是预编译的SQL语句集合,存储在数据库中,可以被多次调用。在分页场景下,使用存储过程可以减少网络传输的数据量,...

    文件服务器方案优缺点比较

    1. 无独立图片服务器:这种方案在Tomcat目录下直接存放图片,简化了实现过程,无需额外的技术,数据库记录和访问方便。然而,它会增加Web服务器的压力,不易扩展,可能导致性能问题。 2. 单一独立文件服务器(非...

Global site tag (gtag.js) - Google Analytics