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

Oracle封锁机制详解

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

  [quote:04b72348bd]LOCK TABLE <表名>[,<表名>]...

  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)、程序停止运行。

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

  3、共享更新封锁方式

  共享更新封锁是对一个表的一行或多行进行封锁,因而也称作行级封锁。表级封锁虽然保证了数据的一致性,但却减弱了操作数据的并行性。行级封锁确保在用户取得被更新的行到该行进行更新这段时间内不被其它用户所修改。因而行级锁即可保证数据的一致性又能提高数据操作的迸发性。

  可通过如下的两种方式来获得行级封锁:

  (1)、执行如下的SQL封锁语句,以显示的方式获得:

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

  IN SHARE UPDATE MODE [NOWAIT]
分页:上一页  1 2 [3] 4 5  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有