码迷,mamicode.com
首页 > 数据库 > 详细

【Oracle】Library Cache的基本结构

时间:2021-06-17 16:53:37      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:缓存   obj   col   package   tab   log   vpd   RoCE   function   

图解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值 含义
CRSR SQL语句和匿名PL/SQL语句
TABL/PRCD/TYPE 表、视图、序列、同义词、存储过程、函数、Type和Package
BODY/TYBD Type和Package的Body
TRGR Trigger
INDEX 索引
CLST Cluster
  1. 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语句、执行计划、执行文本等信息。

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

技术图片

【Oracle】Library Cache的基本结构

标签:缓存   obj   col   package   tab   log   vpd   RoCE   function   

原文地址:https://www.cnblogs.com/henry-chr/p/14891928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!