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

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

 2009-03-12 13:10:47 来源:WEB开发网   
核心提示: Oracle中在事务开始之前可以通过以下方式设置隔离级别:set transation isolation level read committed;set transation isolation level serialezable;set transation isolation

Oracle中在事务开始之前可以通过以下方式设置隔离级别:

set transation isolation level read committed;
set transation isolation level serialezable;
set transation isolation level read only;

也可以在单独的会话中设置隔离级别:

alter session set isolation_level read committed;
alter session set isolation_level serialezable;
alter session set isolation_level read only;

通过刚才的介绍,我们知道了可以设置隔离级别来降低或者消除数据的不完整性,那数据库管理系统是怎么做到这一点的呢?答案是,采用锁。锁可以保护数据,当一个事务修改数据时,锁会将该数据锁定,防止这些数据在同一时刻被其它事务修改。

大多数情况下,我们可以不必自己管理锁,Oracle会自动创建并管理,但是了解锁是如何工作的,对我们来说也是非常有必要的。下列这些情况Oracle会创建锁:

当我们运行了create truncate alter语句时,Oracle会创建锁,称之为DDL锁。

当我们运行了insert update delete语句,Oracle会创建锁,称之为DML锁。

还有一种是内部锁,由Oracle在内部使用,比如管理数据文件。在这里我们不做介绍。

从级别上讲,锁还可以分为数据库级别锁、表级别锁、行级别锁和列级别锁(Oracle不支持)。

1、数据库级别锁:它会锁定数据库以禁止任何新会话和新事务。锁定数据库的最主要目的是在没有用户干扰的情况下完成维护。在Oracle中使用以下语句锁定数据库为限制模式:

alter system enable restricted session;

通过下列语句取消数据库限制模式:

上一页  1 2 3 4  下一页

Tags:Oracle 使用 进行

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