【Oracle】Library Cache 的基本结构

【Oracle】Library Cache 的基本结构

图解 Library Cache

在这里插入图片描述
在这里插入图片描述

结构说明

Hash Bucket

库缓存相当于一个 Hash Table 由一组 Hash Bucket 构成,每个 Hash Bucket 存储相同哈希值的所有库缓存对象句柄,不同库缓存对象句柄间用指针连接,构成库缓存对象句柄链表(Library Cache Object Handles)

Hash Bucket主要用于可执行对象的快速定位和存取

Library Cache Object Handle

库缓存对象句柄(Library Cache Object Handle)是存储库缓存对象的一种结构,这些句柄包含了对象的相关属性,例如:名称、标记、指向对象内存地址的指针等。
Object Handle 的主要属性:

  1. Name
    库缓存对象句柄对应的库缓存对象名称

  2. Namespace
    库缓存对象句柄对应的库缓存对象的分组名

    Namespace 值含义
    CRSRSQL 语句和匿名 PL/SQL 语句
    TABL/PRCD/TYPE表、视图、序列、同义词、存储过程、函数、Type 和 Package
    BODY/TYBDType 和 Package 的 Body
    TRGRTrigger
    INDEX索引
    CLSTCluster
  3. Heap 0 Pointer
    指向子结构 Heap 0 的指针

Library Cache Object

Handle 对应可执行对象 Library Cache Object,通常以堆(Heap)的形式组成。Handle 中指向第一个堆的指针为 Heap 0,Heap 0 中包含指向其他堆的指针信息。

  1. dependency table
    该对象依赖的对象信息
  2. child table
    对象的子对象;比如同一个父游标对应的不同子游标
  3. authorization table
    对象的授权信息
  4. type
    shared cursor,index,table,cluster,view,synonym,sequence,procedure,function,package,table body,package body,trigger 等等。
  5. data blocks
    data block 也是一个指针,指向了 data heap

Data heap

Data heap 即存放真实数据的地方,主要包含库缓存对象的 SQL 语句、执行计划、执行文本等信息。

HeapUsage
0Object
1Source
2Diana
3Pcode
4Mcode
5Errors
6SQL Context
7Free
8Subordinate Heaps

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿的向往

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值