考试网 >> IT认证 >> Oracle >> Oracle指导 >> Oracle封锁机制详解

Oracle封锁机制详解

发布时间:2006-06-28 09:43     点击:
分页:上一页  1 [2] 3 4 5  下一页

  IN SHARE MODE [NOWAIT]

  [/quote:04b72348bd]

  执行该语句,对一个或多个表施加共享方式的表封锁。当指定了选择项NOWAIT,若该封锁暂时不能施加成功,则返回并由用户决定是进行等待,还是先去执行别的语句。

  持有共享锁的事务,在出现如下之一的条件时,便释放其共享锁:

  A、执行COMMIT或ROLLBACK语句。

  B、退出数据库(LOG OFF)。

  C、程序停止运行。

  共享方式表封锁常用于一致性查询过程,即在查询数据期间表中的数据不发生改变。

  2、独占方式表封锁

  独占方式表封锁是用于封锁表中的所有数据,拥有该独占方式表封锁的用户,即可以查询该表,又可以更新该表,其它的用户不能再对该表施加任何封锁(包括共享、独占或共享更新封锁)。其它用户虽然不能更新该表,但可以查询该表。

  独占方式的表封锁可通过如下的SQL语句来显示地获得:

  LOCK TABLE <表名>[,<表名>]....

  IN EXCLUSIVE MODE [NOWAIT]

  独占方式的表封锁也可以在用户执行DML语句INSERT、UPDATE、DELETE时隐含获得。

  拥有独占方式表封锁的事务,在出现如下条件之一时,便释放该封锁:

  (1)、执行COMMIT或ROLLBACK语句。

  (2)、退出数据库(LOG OFF)

  (3)、程序停止运行。

  独占方式封锁通常用于更新数据,当某个更新事务涉及多个表时,可减少发生死锁。

  DML锁有如下三种封锁方式:

  (1)、共享封锁方式(SHARE)

  (2)、独占封锁方式(EXCLUSIVE)

  (3)、共享更新封锁(SHARE UPDATE)

  其中SHARE,EXCLUSIVE用于表封锁,SHARE UPDATE用于行封锁。

 1、共享方式的表封锁   共享方式的表封锁是对表中的所有数据进行封锁,该锁用于保护查询数据的一致性,防止其它用户对已封锁的表进行更更新。其它用户只能对该表再施加共享方式的锁,而不能再对该表施加独占方式的封锁,共享更新锁可以再施加,但不允许持有共享更新封锁的进程做更新。共享该表的所有用户只能查询表中的数据,但不能更新。共享方式的表封锁只能由用户用SQL语句来设置,基语句格式如下:
分页:上一页  1 [2] 3 4 5  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有