下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、存储过程的优缺点为什么要存储过程个去 IBM试的兄弟回来抱怨:去了好个不同的IBM项组,乎每个试官问到数据库的时候都要问没过存储过程,烦不?家去的程序员,不是DBA,以前的项都没有到存储,不照样运的好好的?存储过程真的那么重要吗,它到底有什么好处呢?笔者认为,存储过程说了就是堆SQL的合并。中间加了点逻辑控制。但是存储过程处理较复杂的业务时较实。如说,个复杂的数据操作。如果你在前台处理的话。可能会涉及到多次数据库连接。但如果你存储过程的话。就只有次。从响应时间上来说有优势。也就是说存储过程可以给我们带来运效率提的好处。另外,程序容易出现BUG不稳定,存储过程,只要数据库不出现问题,基本上是不会
2、出现什么问题的。也就是说从安全上讲,使了存储过程的系统更加稳定。数据量的,或者和钱没关系的项不存储过程也可以正常运作。mysql的存储过程还有待实际测试。如果是正式项,建议你sqlserver或 oracle的存储过程。数据与数据之间打交道的话,过程会程序来的快的多。试官问有没有存储,实际上就是想知道前来试的程序员到底做过数据量的项没。如果是培训出来的,或者项公司出来的,对存储肯定接触的少了。所以,要想进公司,没有丰富存储过程经验,是不的。那么什么时候才可以存储?对于数据量不是很以及业务处理不是很复杂的项就需要了么?错。存储过程不仅仅适于型项,对于中型项,使存储过程也是常有必要的。其威和优势主
3、要体现在:1.存储过程只在创造时进编译,以后每次执存储过程都不需再重新编译,般SQL语句每执次就编译次所以使存储过程可提数据库执速度。2.当对数据库进复杂操作时如对多个表进Update,Insert,Query,Delete时),可将此复杂操作存储过程封装起来与数据库提供的事务处理结合起使。这些操作,如果程序来完成,就变成了条条的SQL语句,可能要多次连接数据库。换成存储,只需要连接次数据库就可以了。3.存储过程可以重复使可减少数据库开发员的作量。4.安全性可设定只有某此户才具有对指定存储过程的使权。存储过程的使,好像直是个争论。我不倾向于尽可能使存储过程,是这么认为的:1. 运速度: 多数级
4、的数据库系统都有statement cache的,所以编译sql的花费没什么影响。但是执存储过程要直接执sql花费更多(检查权限等),所以对于很简单的sql,存储过程没有什么优势。2. 络负荷:如果在存储过程中没有多次数据交互,那么实际上络传输量和直接sql是样的。3. 团队开发:很遗憾,起成熟的IDE,没有什么很好存储过程的IDE具来持,也就是说,这些必须完成。4. 安全机制:对于传统的C/S结构,连接数据库的户可以不同,所以安全机制有;但是在web的三层架构中,数据库户不是给户的,所以基本上,只有个户,拥有所有权限(最多还有个开发户)。这个时候,安全机制有点多余。5. 户满意:实际上这个只
5、是要将访问数据库的接统,是存储过程,还是EJB,没太关系,也就是说,在三层结构中,单独设计出个数据访问层,同样能实现这个标。6. 开发调试:样由于IDE的问题,存储过程的开发调试要般程序困难(版本DB2还只能C写存储过程,更是个灾难)。7. 移植性:算了,这个不提,反正般的应总是绑定某个数据库的,不然就法靠优化数据库访问来提性能了。8. 维护性:的确,存储过程有些时候程序容易维护,这是因为可以实时更新DB端的存储过程,但是在3层结构下,更新server端的数据访问层样能实现这个标,可惜现在很多平台不持实时更新已。从上可知道,存储过程的使不能有死规定(全,或全不),以前Terminal - Se
6、rver, Client-DB的式已经过时了,存储过程很多优势已经不明显。现在,我认为的原则是:所有数据访问在应层封装为数据访问层,在那,如果SQL简单的话,直接SQL;如果SQL复杂,或者数据交互多且中间数据最后不会到,使存储过程。其他凭经验吧。存储过程是由些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应程序调,也可以从另个过程或触发器调。它的参数可以被传递和返回。与应程序中的函数过程类似,存储过程可以通过名字来调,且它们同样有输参数和输出参数。根据返回值类型的不同,我们可以将存储过程分为三类:返回记录集的存储过程,返回数值的存储过程(也可以称为标量存储过程),以
7、及为存储过程。顾名思义,返回记录集的存储过程的执结果是个记录集,典型的例是从数据库中检索出符合某个或个条件的记录;返回数值的存储过程执完以后返回个值,例如在数据返回记录集的存储过程的执结果是个记录集,典型的例是从数据库中检索出符合某个或个条件的记录;返回数值的存储过程执完以后返回个值,例如在数据库中执个有返回值的函数或命令;最后,为存储过程仅仅是来实现数据库的某个功能,没有返回值,例如在数据库中的更新和删除操作。使存储过程的好处相对于直接使SQL语句,在应程序中直接调存储过程有以下好处:减少络通信量。调个数不多的存储过程与直接调SQL语句的络通信量可能不会有很的差别,可是如果存储过程包含上百S
8、QL语句,那么其性能绝对条条的调SQL语句要得多。执速度更快。有两个原因:先,在存储过程创建的时候,数据库已经对其进了次解析和优化。其次,存储过程旦执,在内存中就会保留份这个存储过程,这样下次再执同样的存储过程时,可以从内存中直接调。更强的适应性:由于存储过程对数据库的访问是通过存储过程来进的,因此数据库开发员可以在不改动存储过程接的情况下对数据库进任何改动,这些改动不会对应程序造成影响。(4)布式作:应程序和数据库的编码作可以分别独进,不会相互压制。优点:1.由于应程序随着时间推移会不断更改,增删功能,TSQL过程代码会变得更复杂,StoredProcedure为封装此代码提供了个替换位置。
9、2.执计划(存储过程在次运时将被编译,这将产个执计划实际上是 Microsoft SQL Server为在存储过程中获取由T-SQL 指定的结果必须采取的步骤的记录。)缓存改善性能。.但sql server新版本,执计划已针对所有T-SQL 批处理进了缓存,不管它们是否在存储过程中,所以没较优势了。3.存储过程可以于降低络流量,存储过程代码直接存储于数据库中,所以不会产量T-sql语句的代码流量。4.使存储过程使您能够增强对执计划的重复使,由此可以通过使远程过程调(RPC)处理服务器上的存储过程提性能。RPC 封装参数和调服务器端过程的式使引擎能够轻松地找到匹配的执计划,并只需插更新的参数值。
10、5.可维护性,更新存储过程通常更改、测试以及重新部署程序集需要较少的时间和精。6.代码精简致,个存储过程可以于应程序代码的不同位置。7.更好的版本控制,通过使Microsoft Visual SourceSafe 或某个其他源代码控制具,您可以轻松地恢复到或引旧版本的存储过程。8.增强安全性:、通过向户授予对存储过程(不是基于表)的访问权限,它们可以提供对特定数据的访问;、提代码安全,防SQL注(但未彻底解决,例如,将数据操作语DML,附加到输参数);c、SqlParameter 类指定存储过程参数的数据类型,作为深层次防御性策略的部分,可以验证户提供的值类型(但也不是万失,还是应该传递数据库前得到附加验证)。缺点:1.如果更改范围到需要对输存储过程的参数进更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新GetValue() 调,等等,这时候估计较繁琐了。2.可移植性差由于存储过程将应程序绑定到SQL Server,因此使存储过程封装业务逻辑将限制应程序的可移植性。如果应程序的可移植性在您的环境中常重要,则将业务逻辑封装在不特定于RDBMS 的中间层中可能是个更佳的选择。区别,存储过程保存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风电场雨季施工方案
- 岗位操作技能培训实施细则
- 电疗理疗仪器操作技术指引
- 课件项目八直播数据分析与复盘
- 健康管理初诊接待流程
- 獭兔规模化养殖防疫消毒操作规范
- 企业消防安装管理方案
- 会员回访周期管理规范
- 抽水蓄能电站通风洞施工方案
- 培训机构课程授课SOP文件
- 大国兵器学习通超星期末考试答案章节答案2024年
- 小学四年级下学期音乐《我爱我家小竹楼》教学课件
- 电机产品生命周期管理
- 电子政务05电子政务应用系统关键技术概述
- 医院培训课件:《糖尿病酮症酸中毒》
- 23秋国家开放大学《实用管理基础》形考任务1-4参考答案
- 国开土地利用规划形考任务1-4答案
- 2021年重庆中考地理、生物真题及答案
- 板式换热器课程设计-船舶柴油机高温淡水冷却器设计
- 商业模式创新案例四川航空
- 管道安装施工记录(表格模板、XLS格式)
评论
0/150
提交评论