计算机教程第19章在SQLServer中使用提示.pdfVIP

计算机教程第19章在SQLServer中使用提示.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下载 第19章 在SQL Server中使用提示 SQL Server 7允许使用提示来指示SQL Server查询处理器如何处理查询,你可以替换正常 的处理来满足自己特定的需要。本章讨论不同的隔离级别以及它们的含义是什么,还解释如 何在你的查询语句中应用提示以充分利用这些隔离级别。 19.1 隔离级别 在你可以开始探究 SQL Server 中可用的提示之前,必须理解可用的隔离级别。当你将锁 用作一种并发控制机制时,就已经解决了并发问题。锁策略,不管是在表级、页级或是行级, 都允许所有的事务完全独立于其他事务运行,即使在任一时刻可能会有一个以上的事务在 SQL Server 中运行。 隔离底层的基本概念是可串行性 ( s e r i a l i z a b i l i t y ) ,这是数据库的一种属性,说的是在运 行一组并发事务后所得到的数据库状态,必须等同于以某种顺序序列地执行这组事务所得到 的数据库状态。这个属性确保从数据库中储存和提取的全部数据是正确的和一致的。没有可 串行性,依赖于查询执行的顺序,我们的并发查询有可能得到不同的答案,这是不能接受 的。 通过与几位作者共同编写同一本书不同章节的类比,我们可以想象可串行性。任何一位 作者可以在任意时间将章节提交给总体项目,但是,在一章被编辑后,一位作者在没有获得 编者许可的情况下,不能对其做出任何改动。通过这种方法,编辑可以确保所有项目在任何 时间点的正确性,而不管新的未编辑的章节何时到来。 虽然可串行性达到了维护数据完整性的目标,但它是以性能为代价实现的。为避免性能 问题而又仍然能维护数据的完整性,数据库开发者确定了一些不需要完全隔离就能被接受的 查询,这导致隔离级别的建立。你可以将隔离级别认为是一个阈值,低于该值,事务将不接 受不一致数据。当你在一个较低的隔离级别上运行时,得到较高的并发性,但以数据的正确 性为代价。相反,当你运行在一个较高的隔离级别上时,确保了数据的正确性,但整体事务 并发性将会受到负面影响。查看你的事务并决定所需要的正确隔离级别非常重要。 S Q L - 9 2定义了四种隔离级别, SQL Server都支持它们: • 读未提交 这是最低的隔离级别,它确保了所有的事务都是足够隔离的,保证它们不会 读取被破坏的数据。 • 读提交 这是SQL Server 的缺省隔离级别,它确保了所有的事务是足够隔离的,保证它 们只读已提交的数据。 • 重复读 这个隔离级别确保了如果一个事务两次读相同的条目,而在这期间没有更新它, 读返回相同的值。 • 串行化 这是最高的隔离级别,其中事务相互之间是完全隔离的。 既然我们知道了四种隔离级别是什么,现在就来看一下它们能帮助缓和的四种并发性问 题。如果我们没有锁和隔离,可能会发生下面的问题: 第1 9章 在SQL Serv e r 中使用提示 2 4 1 下载 • 丢失更新的问题 ( “脏”的写) 当两个或多个事务选择相同的行,然后基于最初选择的 值更新该行时,产生丢失更新的问题。因为每个事务不知道其他事务,最后一次更新覆 盖了另一个事务所做的更新;因此,造成数据丢失。 回顾一下前面的示例,假设有两个编辑,每个编辑做了一份相同文档的电子副本,每个 编辑分别地修改他或她的副本并保存做了改变的副本,覆盖了最初的文档。最后保存他或她 修改的副本的编辑覆盖了第一个编辑所做的修改,第一个编辑的工作丢失了,而且没有任何 人知道,以后就会产生问题。如果第二个编辑在第一个编辑完成修改之后才能做出修改就好 了。 • 未提交的相关性问题 ( “脏”的读) 当一个事务修改一个数据元素而第二个事务在第一 个事务提交这个修改之前读这个数据,就会发生这种情况。如果第一个事务对做出的改 变执行回滚,那么第二个事务将使用一个从没有提交过的值,因而可能是不正确的。 再使用我们编辑此书的示例,假设一个编辑对一份电子文档做了修改。在修改过程中,第 二个编辑取得一份包括到目前为止所做的所有修改的文档的副本,并将它分发给已预定的 读者。接下来

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档