lock for oracle
ORACLE主要有三种锁类型
一 DML锁
二 DDL锁
三 内部锁和闩
ORACLE的DML锁有如下三种封锁方式:
(1)、共享封锁方式(SHARE)
(2)、独占封锁方式(EXCLUSIVE)
(3)、共享更新封锁(SHARE UPDATE)其中SHARE,EXCLUSIVE用于表封锁,SHARE UPDATE用于行封锁。
a) 共享方式的表封锁共享方式的表封锁是对表中的所有数据进行封锁,该锁用于保护查询数据的一致性,防止其它用户对已封锁的表进行更更新。
b) 独占方式表封锁独占方式表封锁是用于封锁表中的所有数据,拥有该独占方式表封锁的用户,即可以查询该表,又可以更新该表,其它的用户不能再对该表施加任何封锁(包括共享、独占或共享更新封锁)。
在DML锁中还有
TX:事务锁:用于确保一次只有一个人能修改某一行,而且你在处理这个表时,别人不能删除这个表.
TM:用于确保在修改表内容时,表的结构不会发生改变.
DDL锁中也有三种锁类型:
排他DDL锁:防止其他会话得到他们自己的DDL锁
共享DDL锁:锁会保护所引用对象的结构
可中断解析锁:锁允许一个对象向另外某个对象注册其依赖性
大多数的DDL都带有排他型锁 比如:alter table t add new_column data;
没有排他型锁也可以 比如:alter index t_idx on t(x) online;
创建存储对象的 编译对象时,会对依赖的对象加共享锁
和锁有关的视图如下:
| View | Description |
|---|
此文章还有 待补充。。。。
