【文件属性】:
文件名称:利用*机制解决读“脏数据”-sql并发控制
文件大小:771KB
文件格式:PPT
更新时间:2021-04-25 22:08:09
SQL,并发控制
利用*机制解决读“脏数据”
事务T1在读C进行修改之前先对A加X锁,修改其值之后写会磁盘
当T2再请求对C加S锁时被拒绝
T2只能等待T1释放C上的锁后T2获得对A的S锁
这时T1因为某种原因被撤销,C值恢复为100,并且释放C上的X锁
T2获得C上的S锁,读取C的值为100,这样就避免了T2读“脏”数据。
T1 T2
① Xlock C
R(C)=100
C←C*2
W(C)=200
② Slock C
等待
③ ROLLBACK 等待
(C恢复为100) 等待
Unlock C 等待
④ 获得Slock C
R(C)=100
Commit
⑤ Unlock C