WEB开发网
开发学院数据库Oracle 在Oracle中使用锁进行并发控制 阅读

在Oracle中使用锁进行并发控制

 2009-03-12 13:10:47 来源:WEB开发网   
核心提示: alter system disable restricted session;以下语句将锁定数据库为只读模式:startup mount;alter database open read only;2、表级别锁:它会锁定整张表,以防止其它事务对表结构进行修改,在Oracle中使用锁进行并

alter system disable restricted session;

以下语句将锁定数据库为只读模式:

startup mount;
alter database open read only;

2、表级别锁:它会锁定整张表,以防止其它事务对表结构进行修改。比如当我们运行一个insert语句,如果表没有没锁定,其它的事务修改了一列(将列名修改),这时我们运行update语句就会出错,所以当我们运行DML语句时,Oracle会自动将表锁定,DML语句执行完,会释放表级别锁。我们也可以通过lock语句锁定表。

3、行级别锁:当我们运行DML语句时,当前行上就会有行级别锁,防止其它事务对该行进行修改。

当我们运行DML语句时,Oracle会自动加锁,请看以下示例:

update dept set loc='北京' where deptno=40;

然后在Oracle的企业管理器中观察Oracle自动管理的锁,如下图:

在Oracle中使用锁进行并发控制

从上图中我们可以看到,我们运行了一个update语句,产生了两个锁,都是scott用户,SID表示会话是10,锁类型TX表示表级别锁,而TX表示行级别锁,占用的模式我们后面给大家介绍。

锁类型:TM 锁模式:share    某个事务锁定了一张表,允许其它事务再锁定这张表,但不允许这个事务对这张表进行更新。

锁类型:TM 锁模式:row share 某个事务锁定了一张表,允许其它事务再锁定这张表中的其它行。

锁类型:TM 锁模式:row eclusive 某个事务锁定了一张表,允许其它事务以相同的锁模式锁定这张表。

锁类型:TM 锁模式:share row eclusive 在share模式基础上,不允许其它事务锁定这张表。

锁类型:TM 锁模式:eclusive  不允许其它事务再锁定该表,也不允许其它事务更新。

锁类型:TX 锁模式:eclusive  该行已经被锁定,不允许其它事务锁定。

上一页  1 2 3 4 

Tags:Oracle 使用 进行

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接