Oracle锁的演示以及解释

我们看一个例子,来看看TM。TX琐是如何产生的,以及如何通过V$lock ,V$session_wait来查看琐的相关信息。

bb
我们开两个sqlplus,针对表t 进行更新,第一个会话里执行update t set id=2 where id=1;第一会话,更新后,我们先不提交,
然后再在第二个会话里也执行 update t set id=3 where id=1;你会看到第二个会话,会停止不动,其实就是在等待资源,被锁住了。

先把第一个会话的当前Sid查询出来:


bb
然后再看看v$lock这个表,你会发现如下信息:
bb
可以看到对应sid 232有两个琐,一个是TM琐,一个是TX琐,这个正好也印证了我们在更新一条记录的时候,Oracle会在表上加上表琐,在更新的记录上加上行琐。
针对Type为TM的琐,可以通过ID1来查询对对应的琐琐在的object,
select object_name from dba_objects where object_id=76975;  ----- 你会发现就是t 这个表。

bb
232 TX上对应的block为1 代表啥意思呢,就是说它阻塞了另外一个操作(99 TX的操作),而通过99 TX里的Request 对应的值为6,
我们又能了解到,99 TX 等待的就是232 TX这个琐占用的资源,因为他的LMODE就是6.
另外一个比较有用的动态试图就是v$session_wait,通过查询该试图,可以查看以上信息,具体更详细的解释,后面我会更进一步深入一起探讨。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14766526/viewspace-1134070/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14766526/viewspace-1134070/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值