在Oracle中使用锁进行并发控制
2009-03-12 13:10:47 来源:WEB开发网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自动管理的锁,如下图:
从上图中我们可以看到,我们运行了一个update语句,产生了两个锁,都是scott用户,SID表示会话是10,锁类型TX表示表级别锁,而TX表示行级别锁,占用的模式我们后面给大家介绍。
锁类型:TM 锁模式:share 某个事务锁定了一张表,允许其它事务再锁定这张表,但不允许这个事务对这张表进行更新。
锁类型:TM 锁模式:row share 某个事务锁定了一张表,允许其它事务再锁定这张表中的其它行。
锁类型:TM 锁模式:row eclusive 某个事务锁定了一张表,允许其它事务以相同的锁模式锁定这张表。
锁类型:TM 锁模式:share row eclusive 在share模式基础上,不允许其它事务锁定这张表。
锁类型:TM 锁模式:eclusive 不允许其它事务再锁定该表,也不允许其它事务更新。
锁类型:TX 锁模式:eclusive 该行已经被锁定,不允许其它事务锁定。
- ››使用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...
更多精彩
赞助商链接