ITPub博客

首页 > 数据库 > Oracle > library cache lock和library cache pin区别总结

library cache lock和library cache pin区别总结

原创 Oracle 作者:litterbaby 时间:2007-07-11 09:30:28 0 删除 编辑
library cache lock和library cache pin区别总结[@more@]

library cache lock和library cache pin区别总结

library cache lock

library cache pin

共同点

同属于数据字典锁,目的是为了:

1、保持数据字典的一致性

2、为事务提供一致的对象定义视图

锁对象

是为了请求library cache对象句柄

是为了请求library cache数据heap

先后关系

必须先期得到这个锁

必须在得到library cache lock之后才能获得这个锁

获取时间

在parse call阶段

在call execution阶段

用途

排他模式:

使用在父和子句柄上

共享模式:

使用在所有的依赖关系对象句柄上

NULL模式:

侦察不可用的状态

避免再次重新定位(不是太理解)

共享模式:

1、读取数据的heaps

2、防止依赖对象不被修改

排他模式:

修改数据heaps

锁的使用

1、这里说的对象句柄就是一个资源结构

2、锁结构被动态分配在共享池中

3、类型为LA。。LP

1、这里说的对象句柄就是一个资源结构

2、锁结构被动态分配在共享池中

3、类型为NA。。NP

X表

X$KGLLK

X$KGLPN

综述

library cache lock也叫breakable parse lock,是用于控制在请求一个对象句柄锁的library cache的客户端之间的并发性。就是说这个锁就是防止其他的客户端访问同一个对象。这个所还能在library cache上定位一个对象。

这个library cache pin是管理cache的一致。pin一个对象能够造成一个heap载入到内存中,(这里有个疑问难道这个heap就不在内存吗?应该不在,这样这个heaps或许就可以理解为数据字典上的数据了),如果一个客户端修改或者检测一个对象,客户端必须先请求一个library cache lock到相关的句柄上,然后在pin合适的heap。

等待事件

library cache lock

library cache pin

等待周期3秒,PMON为1秒

等待周期3秒,PMON为1秒

等待参数

P1:对象句柄地址

P2:锁结构地址

P3:100*请求模式+namespace#

P1:对象句柄地址

P2:pin地址

P3:100*请求模式+namespace#

很少,除了pipes和序列

数据字典锁还有一个类型是row cache locks。这个锁是对应row cache来说的

row cache用途:

1、存储的是数据字典上的行

2、是共享池的一部分

3、减少对于system表空间的物理IO次数

4、使用row cache lock来精确控制数据字典行上的锁

这里需要说明的是对于一个instance来说,都有一个隐含参数来确定row cache lock的多少,缺省为100。_ROW_CACHE_INSTANCE_LOCKS

这个锁也有一个等待事件与之对应:row cache lock

这个锁等待周期是3秒,等待1000次之后就会放弃。

P1:cache id这个与v$rowcache上的cache#相对应

P2:保持的模式

P3:请求的模式

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

请登录后发表评论 登录
全部评论
  • 博文量
    131
  • 访问量
    465725