ITPub博客

首页 > 数据库 > Oracle > 【ASK_ORACLE】Library Cache概念篇(二)之Library Cache Pin的定义

【ASK_ORACLE】Library Cache概念篇(二)之Library Cache Pin的定义

原创 Oracle 作者:Attack_on_Jager 时间:2023-03-27 09:36:11 0 删除 编辑

Library Cache Pin的定义

    这个事件是管理 library cache 并发。Pin 住一个对象会使它使用的 heap 被载入到内存中。如果一个使用者想要修改或检查这个对象,它必须在获得 lock 之后再取得一个 Pin。 Pin 可以用 NULL, SHARE, EXCLUSIVE 模式获得, 并且可以看做是一种特殊的 lock。等待"library cache pin"意味着这个 PIN 正被某个其它 session 以不兼容的模式持有。


    访问当前被缓存到 library cache 中的数据库对象(表,视图,过程,函数,包,包体,触发器,索引,聚簇,同义词)的时候需要获得 library cache pin; 在 library cache 中,数据库对象被缓存成两部分:句柄(handle)和对象(object); 这个锁(pin)只有当"object"部分被缓存的时候才会被持有。

     Library cache pin 上的死锁不会被自动检测到,对其的操作是同步进行的!

注:

     在10g以后,"library cache pin"已经被 mutex 取代,即 “cursor: pin S wait on X”, 在Oracle 10.2中开始引入,这里就简单说明下这个等待事件,其原理大同小异。说明如下:

    一个会话等待“cursor: pin S wait on X”,当它想在一个特定的游标上以S(共享)模式获得一个互斥锁,但其他会话以X(独占)模式持有同一个互斥锁时。因此当前会话必须等待X模式持有者释放互斥量。

     在RAC中,互斥对象对于的当前实例来说是本地的,不是共享的。


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

请登录后发表评论 登录
全部评论
在某银行任职DBA,拥有多年数据库运维经验,擅长Oracle,MySQL。尤其擅长Oracle的SQL优化,数据库性能调优,数据库备份、恢复与迁移。拥有的认证:OCM 12c,OCM 11g,MySQL OCP,RHCE,阿里云ACP,巨杉SCDP,软考系统集成工程师认证,Oracle Iaas OCA,OBCA,TDSQL认证,TBase认证

注册时间:2021-01-11

  • 博文量
    142
  • 访问量
    482775