在Oracle中使用锁进行并发控制
2009-03-12 13:10:47 来源:WEB开发网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;
通过下列语句取消数据库限制模式:
- ››使用linux中的quota教程
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››使用jxl生成带动态折线图的excel
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
更多精彩
赞助商链接