Granule:Oracle内存机制

Oracle9i开始,Granule现身Oracle河海!

一、标准单间:某公司:写字楼 = Granule:component:SGA 

1.什么东西?为动态SGA的基本单位,SGA组件buffer cache,shared pool等都是按Granule的整数倍来分配和释放的;同一个Granule可以被动态SGA中所有动态组件蹂躏。即便你规定DB_CACHE_SIZE=10M,Oracle也会调整为12MB

2.身份证明?每个Granule都有自己的身份证granule entry,指明Granule 的状态(state)和类型(type)。

3.联系方式?v$SGA_DYNAMIC_COMPONENTS

4.地位大小?由总SGA大小(total SGA size),大多数平台下是4MB(总SGA < 128MB),或者16MB;但在32-bit的瘟到死NT下且总SGA大于128MB前提下,为8M。

 

二、写字楼信息一览版(公司、单间号):写字楼管理经理 = scoreboard : Oracle server

1.存在意义?记录动态组件的信息:配给特定component的granule数,对该component的下一步操作(pending operations),目标granule的大小及其变化的信息与时间(Oracle记录每个component的granule的初始值和最大值)。
2.Oracle记录对granule数目的变化和其修改操作,目标大小(target size),scoreboard上每个component的启动时间(start time),进展(progress),跟新初始化参数文件。

 

三、Granule出场方式&给Component增加Granule Allocating Granules at Startup & Adding Granules to Components

1. 出场步骤?读取参数文件(SGA_MAX_SIZE ) ->  查询OS memory limits -> 为SGA分配虚拟地址空间(allocates virtual address space )

2.如何扩容?ALTER SYSTEM !Oracle让新的值约等于4M和16M的倍数。

 

四、相关查询:关于redo log buffer

1.select * from v$sgainfo where name in ('Fixed SGA Size','Redo Buffers','Granule Size');

2.select sum(bytes)/1024/1024 from v$sgainfo where name in ('Fixed SGA Size','Redo Buffers');

参考源连接:http://www.eygle.com/archives/2009/07/granule_log_buffer.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值