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 |
|
|
|
|