Oracle锁-OWI体系中的认识
锁的名称与资源的名称是相同的,如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 嘿嘿
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 11-18LG新能源宣布与Bear Robotics达成合作,成为
- 11-18机构:三季度全球个人智能音频设备市场强势
- 11-18闲鱼:注册用户过6亿 AI技术已应用于闲置交
- 11-18美柚、宝宝树回应“涉黄短信骚扰”:未发现
- 11-01京东七鲜与前置仓完成融合