您当前的位置: 首页 > 数据库教程 > Oracle教程 > oracle锁

oracle锁

作者:不详 来源:网络 发布时间: 2014-08-25 17:06 点击:
Oracle中避免排队的唯一方式是使用SELECT ... FOR UPDATE(子句WAIT/NOWAIT)命令。 oracle锁的排队机制: 请求锁定需要排队。如果某个会话请求一个锁定,但是由于其他会话已经锁定了指定记录或对象而无法获得所需的锁定,那么这个会话将会等待。 此时,可能多个会话都在

oracle锁

  Oracle中避免排队的唯一方式是使用SELECT ... FOR UPDATE(子句WAIT/NOWAIT)命令。

  oracle锁的排队机制:

  请求锁定需要排队。如果某个会话请求一个锁定,但是由于其他会话已经锁定了指定记录或对象而无法获得所需的锁定,那么这个会话将会等待。

  此时,可能多个会话都在等待访问相同记录或对象,在这种情况下,ORACLE会跟踪这些会话请求锁定的顺序。

  如果不希望某个会话在无法获得锁定时进行排队等候,那么避免排队的唯一方式是使用SELECT ... FOR UPDATE(子句WAIT/NOWAIT)命令。

  SELECT ... FOR UPDATE命令会采用专用的模式来选择和锁定记录。

  如果某条记录已被锁定,那么在锁定被释放前,SELECT ... FOR UPDATE语句会像DML语句一样进行排队并挂起会话。

  使用子句NOWAIT或WAIT 就可以避免挂起会话,其中是以秒为单位的数值。

  在SQL SERVER数据库中有update table with(NOLOCK,UPLOCK,ROWLOCK) set 字段 = 值 where ……(没有安装sql server,未经测试)

  NOLOCK:NOLOCK可以忽略锁,直接从数据库读取数据。这意味着可以避开锁,从而提高性能和扩展性。但同时也意味着代码出错的可能性存在。

  UPLOCK:读取表时使用更新锁,而不使用共享锁,并将锁一直保留到语句或事务的结束。

  ROWLOCK:ROWLOCK告诉SQL Server只使用行级锁。
分享到:
本文"oracle锁"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 广告合作 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4