第八章数据保护(事务和锁).pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章数据保护(事务和锁)

第八章 数据保护之事务和锁 ;8.3 事务处理;一、 事务简介 1.事务由来;;2.什么是事务;事务具有ACID属性: 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Duration) 事务可以分为显式事务和自动提交事务、隐式事务。;1.显式事务 2 . 自动提交事务 3 .隐性事务 ;1. 显式事务 ;1).BEGIN TRANSACTION;2).COMMIT TRANSACTION;3).ROLLBACK TRANSACTION;4).SAVE TRANSACTION;5).事务日志;;例1:;例2:设置事务保存点;例3:设计一个事务并执行:将课程“数据库原理”和“操作系统的”的课程号互换;USE FACTORY SELECT COUNT(*) FROM WORKER BEGIN TRAN INSERT INTO WORKER(职工号,姓名) VALUES(80,AAA) SELECT COUNT(*) FROM WORKER ROLLBACK SELECT COUNT(*) FROM WORKER ;2 自动提交事务 ;3. 隐性事务 ;隐性事务 ;8.4.1 并发问题 8.4.2 锁、锁的分类、死锁 ;什么是并发问题?并发问题带来什么异常? 1.更新丢失 2.脏读 3.不可重复读 4.幻像读 ;8.4.1 并发问题 ;8.4.1 并发问题 ;8.4.1 并发问题 ;8.4.1 并发问题 ;8.4.2 并发控制 ;8.4.2 并发控制 ;8.4.2 并发控制 ;8.4.2 并发控制 ;8.4.2 并发控制 ;8.4.3 什么是锁?;锁的分类 ;SQL Server锁定模式 ;8.4.3 锁的分类 (自己看);2.更新锁 更新(U)锁可以防止通常形式的死锁。一般更新模式由一个事务组成,此事务读取记录,获取资源(页或行)的共享(S)锁,然后修改行,此操作要求锁转换为排它(X)锁。如果两个事务获得了资源上的共享模式锁,然后试图同时更新数据,则一个事务尝试将锁转换为排它(X)锁。共享模式到排它锁的转换必须等待一段时间,因为一个事务的排它锁与其它事务的共享模式锁不兼容;发生锁等待。第二个事务试图获取排它(X)锁以进行更新。由于两个事务都要转换为排它(X)锁,并且每个事务都等待另一个事务释放共享模式锁,因此发生死锁。 若要避免这种潜在的死锁问题,请使用更新(U)锁。一次只有一个事务可以获得资源的更新(U)锁。如果事务修改资源,则更新(U)锁转换为排它(X)锁。否则,锁转换为共享锁。 ;3.排它锁 排它(X)锁可以防止并发事务对资源进行访问。其它事务不能读取或修改排它(X)锁锁定的数据。;4.意向锁 意向???表示SQL Server需要在层次结构中的某些底层资源上获取共享(S)锁或排它(X)锁。例如,放置在表级的共享意向锁表示事务打算在表中的页或行上放置共享(S)锁。在表级设置意向锁可防止另一个事务随后在包含那一页的表上获取排它(X)锁。意向锁可以提高性能,因为SQL Server仅在表级检查意向锁来确定事务是否可以安全地获取该表上的锁。而无须检查表中的每行或每页上的锁以确定事务是否可以锁定整个表。 ;5.架构锁 执行表的数据定义语言(DDL)操作(例如添加列或除去表)时使用架构修改(Sch-M)锁。 当编译查询时,使用架构稳定性(Sch-S)锁。架构稳定性(Sch-S)锁不阻塞任何事务锁,包括排它(X)锁。因此在编译查询时,其它事务(包括在表上有排它(X)锁的事务)都能继续运行。但不能在表上执行DDL操作。 ;6.大容量更新锁 当将数据大容量复制到表,且指定了TABLOCK提示或者使用sp_tableoption设置了table lock on bulk表选项时,将使用大容量更新(BU)锁。大容量更新(BU)锁允许进程将数据并发地大容量复制到同一表,同时防止其它不进行大容量复制数据的进程访问该表。 ;死锁 ;本章小结

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档