4->Oracle SGA中的Granule(粒度)

oracle  sga里各部分参数的最小值就是一个Granule,这个也是Oracle 9i引入的一个新概念.是连续虚拟内存分配的单位,这个Granule分配的大小取决于SGA的总大小(SGA_MAX_SIZE).

SGA中的各个组件分配都是以granule作为一个单位来分配的,而并不是一次分配1M或1K这样的单位。

granule大小是以SGA大小由系统设定的,当SGA小于1G时,granule大小为4M,当SGA大于1G的时候granule大小为16M

如何查询每一块的granule的大小

连接oracle idle instance


select component,granule_size from V$sga_dynamic_components;

从查询的结果中 同时可以看到 sga的组成部分


修改粒度

alter system set "_ksmg_granule_size"=4500000 scope=spfile;
重启oracel以后,我们查询发现granule大小变为了8M,
SQL> select component,granule_size from v$sga_dynamic_components;


转载于:https://www.cnblogs.com/liaomin416100569/archive/2012/02/12/9331413.html

你可能感兴趣的:(4->Oracle SGA中的Granule(粒度))