Library cache lock控制对于Library Cache Object的并发访问,通过获取Object Handle上的锁定持有。通常在定位Library Cache对象时,就需要持有library cache lock。 对包,存储过程,函数,视图进行编译的时候,Oracle就会在这些对象的handle上面首先获得一个Library Cache Lock;然后在这些对象的Heap上获得Pin,这样就能保证在编译...
从ash分析来看,大量的library cache lock会话的p3值都是5373954和5373955。5373954指的是mode=2,5373955的mode=3,只是持有的方式不同mode=3就是exclusive独占锁。 而4276会话library cache lock的p3值是5373955,对应的namespace HEX:52 —>DEC:82,mode=3。 SQL AREA BUILD说明library cache lock是在SQL解析上或SQL...
其中P1、P2、P3为十进制的数值(decimal),p1raw、p2raw、p3raw为16进制的数值(hexadecimal),所以2032301912和0000000079227758为同一数值,00000000004F0002和5177347为同一数值。 SQL>select parameter1,parameter2,parameter3 from v$event_name where name='library cache lock'; PARAMETER1 PARAMETER2 PARAMETER3 --- -...
只有等待,这样就产生了LIBRARY CACHE LOCK,也就是说只要产生LIBRARY CACHE LOCK,必然存在LIBRARY CACHE PIN,而如果出现LIBRARY CACHE PIN,不一定会出现LIBRARY CACHE LOCK 4,所以在产生LIBRARY CACHE PIN要马上处理,以防在业务高期连锁出现library cache lock,最终把业务拖死 5,当然上述我们只是从原理来分析下library ...
Troubleshooting Library Cache: Lock, Pin and Load Lock (Doc ID 444560.1) 一般可以理解的是alter table或者alter package/procedure会以X模式持有library cache lock,造成阻塞。 但是常见的问题还有以下几种原因: 1)错误的用户名密码: 一般需要通过ASH或者SSD/hang analyze去获取p3进行namespace分析。
Troubleshooting Library Cache: Lock, Pin and Load Lock (Doc ID 444560.1) 一般可以理解的是alter table或者alter package/procedure会以X模式持有library cache lock,造成阻塞。 但是常见的问题还有以下几种原因: 1)错误的用户名密码: 一般需要通过ASH或者SSD/hang analyze去获取p3进行namespace分析。
library cache pin几个参数的意思: p1=handle address p2=pin address p3=namespace&&encoded mode 对于p1raw可以对应于x$kglob中的KGLHDADR字段x$kglpn中的KGLPNHDL字段,x$kgllk中的KGLLKHDL字段,后边有sql关联。 dba_hist_active_sess_history中的P1可以转换成16进制之后,再去v$object_dependency通过to_addres...
一般可以理解的是alter table或者alter package/procedure会以X模式持有library cache lock,造成阻塞。 但是常见的问题还有以下几种原因: 1)错误的用户名密码: 一般需要通过ASH或者SSD/hang analyze去获取p3进行namespace分析。 1. event: 'library cache lock' ...
一、存储对象的LOCK和PIN 在生产环境上,我们碰到的大部分library cache pin等待主要源头是存储过程。那该现象底层原理是什么?接下来通过实验来把这个等待链梳理清晰。 该实验的逻辑: 1、会话1执行某个运行时间很长的存储过程 2、会话2尝试编绎、...
从上面的实验我们知道,存储过程在执行过程中,针对TEST_LIBRARY_CACHE_LOCK_PIN持有的LOCK=N,PIN=S。 2.1 设想生产环境场景 设想场景1:在另一个会话中执行删除存储过程的命令 设想场景2:修改存储过程定义 设想场景3:编绎存储过程 通过实验发现,会话1在执行存储过程的时候,如果另外一个会话针对存储过程执行DDL操作,例...