- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下载
第二部分 SQL Server必要信息
本部分内容
■ 编写高效代码 ( 2 5 3页)
■ 使用多层客户/服务器结构 ( 2 7 3页)
■ 复制 ( 2 8 7页)
第14章 编写高效代码
随着数据库的发展,我们经常使用存储过程。问题是如何高效的和更有用地使用它们。
本章将提供给编程人员一些用于建立自己的过程的基础知识。我们将讨论以下几个问题:为
什么要使用存储过程,怎样编写一个过程,介绍几个示例,怎样优化过程,怎样增加过程的
可读性以及模块化和代码重用。
14.1 简洁、高效的代码是好的代码
本章将介绍用T- S Q L编写的存储过程的用途和优点。T- S Q L语言提供了两种不同类型的语句:
■ 结构查询语言(Structured Query Language, SQL)语句。
■ 过程结构,例如流控、数据存储以及错误处理语句。
存储过程的编写者必须提供以下内容:
■ 过程所完成任务的明确定义。
■ 准确有效的 S Q L查询。
■ 一些有创造性的格式。
在编写存储过程时,我们应该深入理解 T- S Q L语言的组成要素,最好地使用它们,这样编
写出的存储过程无论从形式上还是功能上都是一流的。
14.1.1 明确目标
在编写一个或多个存储过程时,将注意力集中在目标上很重要。本节将讨论为什么在数
据库的开发过程中要使用存储过程,还将介绍存储过程所实现的一些普通功能。编程人员应
当知道“为什么要编写存储过程?”和“该过程应该完成什么任务?”这两个问题,这有助
于其将注意力集中在目标上。
1. 为什么要编写存储过程?
编写一个存储过程有许多原因,例如:
■ 存储过程中的查询更快。
■ 数据访问的公共接口。
■ 代码的模块化和重用。
254使用第二部分 SQL Serv e r必要信息
下载
■ 通过数据隔离实现安全性。
■ 独立于外部编程语言。
存储过程中的查询更快是因为数据库引擎使用的访问计划是预编译的。
注意 SQL server 7为存储过程改进了高速缓冲方案。当一个过程被载入高速缓存中
后,它即被所有连接共享。一般来说,每条连接都在高速缓存中有自己的过程拷贝。
存储过程提供了一个对基本表以及其中数据的公共访问接口。类似地,这样带来的额外
好处是在数据返回给调用者之前可以对其使用各种复杂方法进行过滤、组合和更改。
代码能够分块是因为存储过程可以尽可能地小,而且几个小的存储过程能够组合成大一
点的功能单元。这是因为存储过程可以互相调用。
代码容易重用是由于过程本身存储在数据库中的缘故,数据库中的数据很快就能被任何拥
有执行权限的连接所使用。因而,数据库就像一个代码的中心仓库一样用于访问和使用数据。
基本表的安全性和完整性能够通过使用存储过程得到加强。管理员可以拒绝编程人员对
某个表的直接访问,不过可以把对该表具有完全访问能力的执行权力授予某个过程。这样,
在存储和检索操作中管理员能够正确控制对一个表的访问。
通过存储过程,在数据库中对数据的逻辑操作有时可独立于外部编程语言。一个普通的
示例就是用某种语言例如 Visual Basic 打开游标,用某种方式操作记录后关闭游标。这种处理
过程可以完全在一个存储过程内部实现—并不需要Visual Basic 程序。这样带来的好处是
这些操作不依赖于客户应用程序。这种用任何一种语言写的客户应用程序仅仅只需调用存储
过程。
存储过程非常有用,但如果编程人员不能满足这些需求中的一种或多种,或者缺乏这里没
有列举的其他必需的限制条件,那么就不必花费更多的精力在一个存储过程中插入一个简单的
S Q L查询。从另一个角度来说,编程人员在开始编写之前要想方设法地正确找出编写一个存储
过程的目的。这样做不但增加了最终产品的质量,使编程任务更容易实现,还减少了设计和代
码错误。另外,编程人员做出了编写一个过程的选择后,还得做出一个选择,如下面的介绍。
2. 存储过程要完成什么任务?
给出实现像一个存储过程一样的某个数据库函数的理由后,另一个主要目标就是考虑该
您可能关注的文档
- 《(德国)黑格尔:哲学史讲演录(三)3》青少年文学教育丛书.pdf
- [明]冯梦龙《智囊》全译本(十一).pdf
- 《(德国)胡塞尔:纯粹现象学通论4》青少年文学教育丛书.pdf
- 《(法国)狄德罗哲学选集1》青少年文学教育丛书.pdf
- 《(德国)尼采:苏鲁支语录1》青少年文学教育丛书.pdf
- 《(法国)伏尔泰:哲学辞典(上)4》青少年文学教育丛书.pdf
- 《(古希腊)亚里士多德:形而上学3》青少年文学教育丛书.pdf
- 《[法]埃蒂耶纳-卡贝:伊加利亚旅行记(1)(三)》青少年文学教育丛书.pdf
- 《[法]布朗基文选(一)》青少年文学教育丛书.pdf
- 《[美]克林顿:希望与历史之间(2)》青少年文学教育丛书.pdf
- 《SQLServer7编程技术内 幕(十六)》青少年文学教育丛书.pdf
- 《SQLServer7关系数据库系统管理与开发(八)》青少年文学教育丛书.pdf
- 《SQLServer7关系数据库系统管理与开发(十八)》青少年文学教育丛书.pdf
- 《SQLServer7关系数据库系统管理与开发(十六)》青少年文学教育丛书.pdf
- 《SQLServer724学时教程(五)》青少年文学教育丛书.pdf
- 《SQLServer724学时教程(十二)》青少年文学教育丛书.pdf
- 《SQLServer2000编程员指南-2》青少年文学教育丛书.pdf
- 《Webster’sMarch7thSpeechSecession(韦布斯特3月7日演说)》青少年文学教育丛书.pdf
- 《What’s wrong with modern capital budgeting》青少年文学教育丛书.pdf
- 《Zeros of Chromatic and Flow Polynomials of Graphs》青少年文学教育丛书.pdf
文档评论(0)