第十一章
2017-01-02 18:16:03 0 举报
AI智能生成
第十一章,是故事的关键转折点。在本章中,主角经历了一系列的挑战和困难,他的性格和信念都受到了严峻的考验。他开始质疑自己的初衷,甚至想要放弃。然而,就在最黑暗的时刻,他遇到了一位神秘的导师,这位导师用他的智慧和经验点燃了主角心中的希望之火。主角重新找回了自己的信念,他决定继续前行,无论前方的道路有多么艰难。这一章充满了激情和动力,它展现了主角坚韧不拔的精神风貌,也预示了他即将到来的胜利。
作者其他创作
大纲/内容
2.异常问题
数据不一致性
丢失修改
T1,T2读入同一数据并修改
不可重复读
T1读取,T2修改
幻影现象
T1读取,T2删除
T1读取,T2插入
读“脏”数据
T1修改,T2读取,T1撤销
4.基于封锁的并发控制技术
封锁
类型
排它锁(写锁) X锁
共享锁(读锁) S锁
相容矩阵
正确使用
保证事务的一致性
保证调度的合法性
封锁协议
一级封锁协议
T修改R前必须加X锁,事务结束释放
只防止丢失修改
二级封锁协议
一级+T读取R前必须加S锁,读完可释放
防止丢失修改和读脏数据
三级封锁协议
一级+T读取R前必须加S锁,事务结束释放
防止丢失修改、不可重复读和读脏数据
活锁
避免:采用先来先服务策略
死锁
死锁预防
一次封锁法
问题
降低系统并发性
难以事先精确确定封锁对象
顺序封锁法
问题
维护成本大
难以实现
事务重试法
使用抢占机制和事务回滚
死锁检测与恢复
检测
超时法
优点
简单
缺点
有可能误判死锁
有可能不能及时发现死锁
事务等待图法
解除死锁
选择一个处理死锁代价最小的事务,将其撤销
两阶段封锁协议2PL
两个阶段
扩展阶段(获得封锁)
收缩阶段(释放封锁)
遵守2PL→可串行化
一次封锁法→遵守2PL
遵守三级封锁协议→遵守2PL
锁表
锁管理器
锁表
封锁请求处理
解锁请求处理
6.SQL Server中的并发控制
事务的隔离级别
serializable 可串行化
repeatable read 可重复读
read committed 读提交数据
read uncommitted 读未提交数据
专用锁
锁的类型
基本锁
排它锁
共享锁
特殊情况锁
意向锁
更新锁
共享锁与排它锁的混合
一个资源只能有一个更新锁,可以和其他锁共存
需要修改时将共享锁升级为排它锁
架构锁
架构稳定性锁Sch-S
架构修改锁Sch-M
大容量更新锁
锁的使用和管理
设置共享锁
HOLDLOCK
设置排它锁
TABLOCKX
锁的管理
存储过程sp_lock
1.问题的提出
问题的产生
多用户数据库系统
不同的多事务执行方式
事务串行执行
交叉并行方式
同时并发方式
并发控制机制
任务
对并发操作进行正确的调动
保证事务的隔离性
保证数据库的一致性
3.并行调度的可串行性
正确调度
将所有事务串行起来执行的调度
可串行化调度
调度的冲突等价性
冲突操作
不同事务对同一数据
读写操作
写写操作
不可交换
不同事务的冲突操作
同一事务的两个操作
冲突等价
冲突可串行化调度
调度的状态等价性
数据库状态等价性
等价条件
S1中T1读A初值,S2中T2也读A初值
S1中T1读A,S2中T1读A
S1中T1读的A由T2产生,S2中T1读的A也由T2产生
S1中有一事务执行最后的写A,S2中该事务也执行最后的写A
状态可串行
一个调度状态等价一个串行调度
冲突可串行→状态可串行
调度的可串行性测试
构造前趋图
包含回路→不是冲突可串行的
不包含回路→是冲突可串行的
5.多粒度封锁
封锁粒度
定义
封锁对象的大小
封锁对象
逻辑单元
物理单元
选择原则
封锁开销
并发度
多粒度树
树形结构
根节点:数据库(最大的数据粒度)
叶节点:最小的数据粒度
多粒度封锁协议
显式封锁
直接加到该数据对象的锁
隐式封锁
因上级加锁而加的锁
意向锁
目的
提高对某个数据对象加锁时系统的检查效率
定义
任一结点加基本锁,对其上级结点加意向锁
结点加了意向锁,表示其下层结点正被加锁
常用意向锁
意向排它锁 IX锁
意向共享锁 IS锁
共享意向排它锁 SIX锁
S+IX
相容矩阵
锁的强弱关系 X>SIX>S=IX>IS
多粒度封锁方法
封锁
自上而下
解锁
自下而上
作用
提高系统并发度
减少开销
广泛应用
0 条评论
下一页