- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章并发控制剖析
Confidential, for review only * DBMS对并发事务不同的调度可能会产生不同的结果 什么样的调度是正确的? Confidential, for review only * Confidential, for review only * Confidential, for review only * Confidential, for review only * 如事务T1,已封锁了数据R1,而事务T2,封锁了数据R2, T1又继续请求封锁R2,因T2已经封锁了R2,因而T1等待T2释放R2; 接着而T2又继续请求封锁R1,因T1已经封锁了R1,因而T2等待T1释放R1。 T1、T2相互等待对方释放锁,形成死锁 Confidential, for review only * 要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行 Confidential, for review only * X锁和S锁都是加在某一个数据对象上的 封锁的对象可以是逻辑单元、物理单元, 例在关系数据库中,封锁对象: 逻辑单元: 属性值、属性值集合、元组、关系、索引项、整个索引、整个数据库等 物理单元:页(数据页或索引页)、物理记录等 封锁对象可以很大也可以很小,对整个数据库加锁或 对某个属性值加锁 封锁对象的大小称为封锁的粒度(Granularity) 多粒度封锁(multiple granularity locking):在一个系统中同时支持多种封锁粒度供不同的事务选择 Confidential, for review only * 若启用了隐性事务模式,则所有语句都被认为是一个事务的一部分,除非显式执行 COMMIT TRAN(或 COMMIT WORK),否则不会提交任何修改工作 Confidential, for review only * SQL Server 使用 DB 锁来确定数据库是否在使用中 在 sp_lock 的输出中,可以看到大部分进程都在至少一个数据库上拥有锁。任何在非 master 或 tempdb 数据库上拥有锁的进程都会有那个数据库的 DB 锁,这通常是共享锁。 Confidential, for review only * 若要在应用程序中使用更严格或较宽松的隔离级别,可以通过使用 SET TRANSACTION ISOLATION LEVEL 语句设置会话的隔离级别,来自定义整个会话的锁定 Confidential, for review only * 数据共享与数据一致性是一对矛盾 数据库的价值在很大程度上取决于它所能提供的数据共享度。 数据共享在很大程度上取决于系统允许对数据并发操作的程度。 数据并发程度又取决于数据库中的并发控制机制 另一方面,数据的一致性也取决于并发控制的程度.施加的并发控制愈多,数据的一致性往往愈好。 Confidential, for review only * * * 1. 多粒度封锁 例如事务T要对关系R1加X锁 系统必须搜索其上级结点数据库、关系R1 还要搜索R1的下级结点,即R1中的每一个元组 如果其中某一个数据对象已经加了不相容锁,则T必须等待 数据库 关系Rn 关系R1 元组 元组 元组 元组 …… …… …… * * 2. 意向锁 引进意向锁(intention lock)目的 提高对某个数据对象加锁时系统的检查效率 什么是意向锁 对任一结点加基本锁,必须先对它的上层结点加意向锁 如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁 例:对任一元组 r 加锁,先对关系R加意向锁 事务T要对关系R加X锁, 系统只要检查根结点数据库和关系R是否已加了不相容的锁, 不需要搜索和检查R中的每一个元组是否加了X锁 * * 常用意向锁 意向共享锁(Intent Share Lock,简称IS锁) 如果对一个数据对象加IS锁,表示它的后裔结点拟(意向)加S锁。例:要对某个元组加S锁,则要先对关系和数据库加IS锁 意向排它锁(Intent Exclusive Lock,简称IX锁) 如果对一个数据对象加IX锁,表示它的后裔结点拟(意向)加X锁。例:要对某个元组加X锁,先要对关系和数据库加IX锁 共享意向排它锁(Share Intent Exclusive Lock,简称SIX锁) 如果对一个数据对象加SIX锁,表示对它加S锁,再加IX锁,即SIX = S + IX。例:对某个表加SIX锁,则表示该事务要读整个表(所以要对该表加S锁),同时会更新个别元组(所以要对该表加IX锁) * * 2. 意向锁 意向锁的相容矩阵 T1 T2 S X IS
您可能关注的文档
最近下载
- 《戏剧影视表演剧目创作》课件——2.任务2 梳理中心事件与矛盾冲突.pptx VIP
- 18G901-1混凝土结构施工钢筋排布规则与构造详图(现浇混凝土框架、剪力墙、梁、板)公开版.docx VIP
- 化妆品店长毕节大方岗位职责.docx VIP
- (正式版)DB35∕T 2250-2025 《免陪照护病区服务规范》.pdf VIP
- 【教学课件】微专题课件:把握戏剧冲突.pptx
- 高级园林绿化工试题库(含答案).pdf VIP
- 微电影创作教程全套教学课件.pptx VIP
- 高二【物理(人教版)】实验:练习使用多用电表-教学设计.docx VIP
- 2025年执业药师考试《中药学专业知识(一)》真题及答案解析【完整版20259.pdf VIP
- 2009年十一月号 - 沙田培英中学.pdf VIP
文档评论(0)