Oracle有两种模式的锁:(按模式进行分类)
排他锁(exclusive lock,即X锁)
共享锁 (shared lock 即S锁)
加上排他锁,其他的事务不能对其进行读取和更改.注意加上排他锁我们一般也认为可以进行读取,但这个读取是读取的UNDO的内容.
加了共享锁,可以被其他事务读取,但不能修改.
锁的类型:
根据保护对象的不同,可分为:
DML锁(data locks ,数据锁):用于保护数据的完整性. DML锁主要包括TM锁和TX锁. TM锁又称表级锁,TX锁又称事务锁或行级锁.
DDL锁(dictionary locks,字典锁):用于保护数据对象的结构,如表和索引的结构定义.
内部的锁和闩(internal locks and latches):保护数据库的内部结构,例如,数据文件.内部的锁和闩完全由ORACLE进行自动管理.
锁模式 | 锁描述 | 解释 | Sql操作 |
0 | none |
|
|
1 | null |
|
|
2 | SS(ROW-S) | 行级共享锁 | Select for update,lock for update,lock row share |
3 | SX(ROW-X) | 行级排他锁 | Insert update delete,lock row share |
4 | S(SHARE) | 共享 | Create index, lock share |
5 | SSX(S/ROW-S) | 共享行排他 | Lock share row exclusive |
6 | X(exclusive) | 排他 | Alter table,drop table,drop index,truncate table |
|
|
|
|