ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 9i 下sga_max_size 和SGA中各内存分配项的关系

9i 下sga_max_size 和SGA中各内存分配项的关系

原创 Linux操作系统 作者:tolywang 时间:2006-09-29 00:00:00 0 删除 编辑
----------------------------------------------------------------
SGA_MAX_SIZE
Parameter type
Big integer

Syntax
SGA_MAX_SIZE = integer [K | M | G]



Default value
Initial size of SGA at startup, dependent on the sizes of different pools in the SGA, such as buffer cache, shared pool, large pool, and so on.

Parameter class
Static

Range of values
0 to operating system-dependent

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

sga_max_size 是 static 参数类型
一直比较模糊的一个概念: SGA所包含的几个内存分配项( db buffer, share pool , large pool , java pool 等 ) 内存值发生变化导致整个SGA和发生变化时, sga_max_size 会不会自动变化 ( 根据定义应该是自动发生变化的,当startup时候 ) ?

产生这个疑问是源于看了一本performance tuning的书,上面写道:如果整个SGA内存区大小加和是 300 M , 而sga_max_size 被设置为 500m , 那么oracle仍然从空闲内存中要求 500 m 的内存 。也就是说Oracle 数据库启动时会向操作系统要求和sga_max_size 参数值相等的内存, 而不是去看SGA各项内存的加和 ( 这样可能造成浪费 ) 。

今天测试发现 sga_max_size 是随SGA中各内存分配项( db buffer, share pool , large pool , java pool 等 ) 的总和变化而变化的。当SGA各项变化导致总和发生变化, 那么sga_max_size 在重新启动db时就会自动根据变化的内存值总和改变自己的值 。


从上面分析可以得出,sga_max_size 其实是不需要手动调整的 ( 如果内存变更后允许startup的话 ) 。 应该不太可能出现上面提到的sga_max_size 被设置为 500m , 而SGA各项内存值加和才 300 m .

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

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13168823