存储过程优缺点分析

存储过程的优缺点: 

存储过程优点: 
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.代码可读性差,相当难维护.

时间: 2024-09-12 14:31:52

存储过程优缺点分析的相关文章

存储过程优缺点分析_MsSql

存储过程的优缺点: 存储过程优点: 1.由于应用程序随着时间推移会不断更改,增删功能,T-SQL过程代码会变得更复杂,StoredProcedure为封装此代码提供了一个替换位置. 2.执行计划(存储过程在首次运行时将被编译,这将产生一个执行计划-- 实际上是 Microsoft SQL Server为在存储过程中获取由 T-SQL 指定的结果而必须采取的步骤的记录.)缓存改善性能. 但sql server新版本,执行计划已针对所有 T-SQL 批处理进行了缓存,而不管它们是否在存储过程中,所以

ASP.NET技巧:存储过程的分析

asp.net|存储过程|技巧 1 // 对存储过程的分析:实例 2         // string G_name ,string G_password为传递给此存储过程的参数,string Loging表示方法名和类型  3      4          public   string  Login( string  G_Name , string  G_Passord)  5          { 6  7             SqlConnection Conn  =   new

js闭包所用的场合以及优缺点分析

  这篇文章主要介绍了js闭包所用的场合以及优缺点分析,十分的详细使用,有需要的小伙伴可以参考下. 先上段代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 //函数a function a() { var i=0; //函数b function b() { alert(++i); } return b; } //函数c var c = a(); c(); 代码特点: 1.函数b嵌套在函数a内部; 2.函数a返回函数b. 代码中函数a的内部函数b,被函数a外面的一个变量

浅谈JavaScript事件绑定的常用方法及其优缺点分析_javascript技巧

传统方式  element.onclick = function(e){ // ... };  1.  传统绑定的优点 非常简单和稳定,可以确保它在你使用的不同浏览器中运作一致 处理事件时,this关键字引用的是当前元素,这很有帮组 2. 传统绑定的缺点 传统方法只会在事件冒泡中运行,而非捕获和冒泡 一个元素一次只能绑定一个事件处理函数.新绑定的事件处理函数会覆盖旧的事件处理函数 事件对象参数(e)仅非IE浏览器可用 W3C方式  element.addEventListener('click'

设计师不应该错过的响应式设计框架(含优缺点分析)

Ethan Marcotte称响应式设计是基于网格建立一个网站.Marcotte定义这项技术后,响应式设计框架开始出现,主要是css和JavaScript的结合.许多框架都是开源的,可以免费下载和快速定制. 当下最火热的框架就是Bootstrap和 Foundation了. 随着响应式设计框架越来越火,一个巨大的争议出现了:为什么一个专业的设计师还需要用这些框架呢? 许多人宣称响应式框架是可怕的,因为他们根本不懂一点点html和css的知识.下面是另一些具有标志性的反对使用框架的意见: 设计师可

百合网CEO田范江:IT男谈恋爱的优缺点分析

百合网 CEO田范江 [TechWeb报道]9月12日消息,百合网CEO田范江在今天的互联网大会上做了主题为"IT男的爱情"的演讲,他认为IT男最大的优点是智商高,短处是不善表达.不注重外表. 田范江表示,IT男在婚恋中的一个问题是"兔子吃不了窝边草",因为IT男工作环境中女性很少.与此同时,IT生活圈子很窄,没有什么机会在工作场外之外认识女孩.但是IT男对征婚的热情非常高,择偶方面非常认真. 田范江分析了IT谈恋爱的优缺点.他认为,IT男最大的优点是智商高,大学以

php调用mysql存储过程实例分析_php技巧

本文实例分析了php调用mysql存储过程的方法.分享给大家供大家参考.具体分析如下: Mysql存储过程创建语法,代码如下: CREATE PROCEDURE和CREATE FUNCTION : 复制代码 代码如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]])       [characteristic ...] routine_body   CREATE FUNCTION sp_name ([func_parameter[,...]])

主流博客大PK :精选容易优化易推广的博客优缺点分析

博客营销的重要性不言而喻,今天博主将精选几大容易优化容易推广的博客平台推荐给广大博友!并且重点分析各主流博客的优缺点,让您有的放矢的选择适合自己的博客平台. 博客平台推荐之一:百度空间---推广度高,适用性广的博客 推荐指数:★★★★☆ 适用人群:适合所有有写作需求的博主,满足写文章,发图片等基本需求!适合对博客有个性化需求的博主,特别适合懂CSS自定义模板需求者和非主流GGMM! 百度空间优点: 1.百度旗下的博客平台,网络较稳定!搜索引擎权重高,容易收录! 2.博客名称描述可自由填写,比较容

IXWebHosting美国主机优缺点分析

中介交易 SEO诊断 淘宝客 云主机 技术大厅 IXWebHosting怎么样?自从我的网站上线以后就有人不断的发邮件问我这个问题,但是要简单的回复这个问题却不容易,因为不同的人有不同的需求,一家主机不可能适合所有人的需求.满足需求就是好的,不满足就不好.所以我今天特别写这篇文章,分析一下ixwebhosting的优缺点供大家参考,大家再根据自己的需求来确定是否符合自己的要求. IXWebHosting的优点: 1.国外主机商比较自由,不用BeiAn,省去了不少麻烦.例如你要写个Blog还要Be