深入分析mode 2-6 的TM锁相互间的互斥关系
Oracle TM锁的类型
锁模式
|
锁描述
|
含义
|
锁定表的SQL
|
0
|
None
| ||
1
|
Null
|
空,本模式是oracle预留模式
| |
2
|
Row Share(RS)
又叫(SS)
|
行级共享锁,是限制最少的TM锁,可以提供最高程度的并发性。其他会话可以对锁定的表进行任何类型的DML操作,还可以与其他会话锁并存
|
Lock table t in row share mode;
|
3
|
Row Exclusive Table Lock(RX)
又叫(SX)
|
行级排他锁,通常已经有事务在修改行或者select…for update 修改结果集。允许其他事务对锁定的表进行select insert update delete 或 lock table 同时锁定一张表
|
Lock table t in row exclusive mode;
|
4
|
Share Table Lock(S)
|
共享锁,其他事务可以查询锁定的表但不能修改,只允许当前事务修改,但可以多个事务持有它
|
Lock table t in share mode;
|
5
|
Share Row Exclusive Table Lock(SRX)
又叫SSX
|
共享行级排他锁,同一时间只允许一个事务持有和修改锁定的表,其他事务可以查询但不能修改
|
Lock table t in share row exclusive mode;
|
6
|
Exclusive Table Lock (X)
|
排他锁,是限制最高的TM锁,禁止其他事务执行任何类型的DML语句或者锁表
一个表一般只能有一个6号锁
|
Lock table t in exclusive mode;
|
Oracle锁模式互斥关系图
锁模式
|
锁名称
|
允许级别
|
互斥级别
|
2
|
行级共享锁
|
2 3 4 5
|
6
|
3
|
行级排他锁
|
2 3
|
4 5 6
|
4
|
共享锁
|
2 4
|
3 5 6
|
5
|
共享行级排他锁
|
2
|
3 4 5 6
|
6
|
排他锁
|
2 3 4 5 6
|
沒有留言:
張貼留言