Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1997078
  • 博文数量: 1647
  • 博客积分: 80000
  • 博客等级: 元帅
  • 技术积分: 9980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:15
文章分类

全部博文(1647)

文章存档

2011年(1)

2008年(1646)

我的朋友

分类:

2008-10-28 17:53:40

    Total System Global Area AAAAA bytes

    Fixed Size BBBBB bytes

    Variable Size CCCCC bytes

    Database Buffers DDDDD bytes

    Redo Buffers EEEEE bytes

    fixes size : oracle 的不同平台和不同版本下可能不一样,但对于确定环境是一个固定的值,里面了 SGA 各部分 组件 的信息,可以看作 引导 建立 SGA 的区域

    Variable Size : 包括 shared pool ,java pool ,large pool, 管理DB_BLOCK_BUFFERS 的内存,管理控制文件信息的内存,等等其他管理和控制 oracle 内部结构的内存

    redo buffer

    分

    1: 设置参数

    SQL> show parameters log_buffer

    NAME TYPE VALUE

    ------------------------------------ ------- ------------------------------

    log_buffer integer 524288

    2:日志内存大小

    SQL> select * from v$sgastat where name like '%log%';

    POOL NAME BYTES

    ----------- -------------------------- ----------

    log_buffer 656384

    3 : 为了保护日志内存,而增加了辅助的内存,也就是保护页

    SQL> show sga

    Total System Global Area 496049552 bytes

    Fixed Size 454032 bytes

    Variable Size 109051904 bytes

    Database Buffers 385875968 bytes

    Redo Buffers 667648 bytes

    SQL>

    对于数据库来说,在不同 的平台下

    log_buffer 是离散的 一组值,假设是集合 R,并且不是按照 os blockck 或者 db block 为步长增加的,(比如可能是 65k,128k,512k ,641k....这样的值) 当设置参数为某个值的时候,数据库选择的实际大小是 大于等于 该值 的 min(R) ,根据这组值,比如你设置了 log_buffer = 600k ,则实际选择的是641 k

    然后,在实际分配内存的时候,为了 给 log buffer 做一些保护,还另外分配了一小部分空间,通常是 11 k 大小。

    则有641+11 = 652 k

    这才是 最后真正的 内存大小 ,也就是 show SGA 时候显示大小。

【责编:Amy】

--------------------next---------------------

阅读(126) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~