ITPub博客

首页 > Linux操作系统 > Linux操作系统 > share pool内存结构及library cache内部实现机制

share pool内存结构及library cache内部实现机制

原创 Linux操作系统 作者:ziling2011 时间:2012-02-22 17:30:59 0 删除 编辑
share pool内存结构及library cache内部实现机制
一、share pool是SGA中的内存块,chunk是share pool分配的最小单位.
当chunk可用时存放sql相关信息(library cache)或数据字典信息(dictionary cache)
二、library cache
1.作用:存放sql语句、sql解析树、执行计划等相关数据信息,防止硬解析(library cache)
2、什么机制方法实现快速查找?
library cache存储信息相当复杂,如何快速定位要查找的位置
library cache存储采用hash方法,hash表=》hash bucket=》chunk双链表=》handle=>LCO==library cache object(name、namespace、type、heap指针、一些标志信息(是否pin在内存中))等
详细:将解析的sql随机hash一个值,到hash表里找到对应hash bucket,再遍历bucket找到handle。
3、library cache依赖关系处理
dependency table
child table:指向对象的子对象:如sql相同,执行用户不同,此时可共用sql信息。
4、library cache并发控制
1.library cache通过library cache lock,library cache pin实现并发控制,oracle先要在handle中获得lock,再将访问的数据pin在内存中,lock作用是并发访问控制,pin是保持数据一致性,防止数据更改混乱。
2.library cache latchs
通过 library cache latchs(lock/pin/load/...latch)分配或释放空间,控制并发访问library cache内存结构(library cache lock、pin)
如果oracle要访问library cache中信息时,得先要获得library cache lock latch然后在handle上获得lock 再获得library cache pin latch 再在heap上获得pin 再释放pin,lock,latch

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

请登录后发表评论 登录
全部评论

注册时间:2011-07-18

  • 博文量
    52
  • 访问量
    130195