Oracle锁-OWI体系中的认识

浏览:
字体:
发布时间:2013-12-17 09:37:21
来源:

锁的名称与资源的名称是相同的,如TM锁保护TM(table)资源,TX锁保护TX(transaction资源),US锁保护US(Undo Segment)资源。 普通锁因为没有特定的结构体,即Enqueue结构,没法通过v$lock等观察。只能通过v$session_wait等看等待时间来观察是否发生了争用。

select chr(bitand(&&P1, -16777216) / 16777215) || chr(bitand(&&P1, 16711680) / 65555) "name", bitand(P1, 65555) "mode" from dual;

row cache lock 一般与sequence上没有使用cache值有关。通过这个sql确认下。 select * from DBA_SEQUENCES t where cache_size<2;

buffer lock锁争用能通过buffer busy waits与read by other session事件观察也就是说这两种等待事件,并不是闩锁的争用?

对于同样library cache lock

引用eygle地描述:

Oracle使用两种数据结构来进行shared pool的并发控制:lock 和 pin.

Lock比pin具有更高的级别.

Lock在handle上获得,在pin一个对象之前,必须首先获得该handle的锁定.

锁定主要有三种模式: Null,share,Exclusive.

在读取访问对象时,通常需要获取Null(空)模式以及share(共享)模式的锁定.

在修改对象时,需要获得Exclusive(排他)锁定.

在锁定了Library Cache对象以后,一个进程在访问之前必须pin该对象.

同样pin有三种模式,Null,shared和exclusive.

只读模式时获得共享pin,修改模式获得排他pin.

总结:先lock 再pin 嘿嘿

>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();