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

此文章还有 待补充。。。。



评论暂缺

(Required)
(Required, will not be published)