我们都知道从Oracle9i开始,Oracle引入了一个新的initial parameter->db_cache_size,这个参数代表了standard db_block_size的Default pool的大小.那么这样一来的引入替代了先前的db_block_buffers*db_block_size=buffer cache size的设置方法.
db_cache_size的最小值就是一个Granule,这个也是Oracle 9i引入的一个新概念.是连续虚拟内存分配的单位,这个Granule分配的大小取决于SGA的总大小(SGA_MAX_SIZE).
如果估计的SGA的大小小于128MB,那么Granule为4M,否则 > 4M
if [$SGA_MAX_SIZE < 128MB]
then
Granule=4M
elseif
Granule >4M
end if
观察这个值,我们可以通过一个隐藏参数_ksmg_granule_size来控制
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
PL/SQL Release 9.2.0.8.0 - Production
CORE 9.2.0.8.0 Production
TNS for 32-bit Windows: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production
SQL> select
2 x.ksppinm name,
3 y.ksppstvl value,
4 y.ksppstdf isdefault,
5 decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
6 decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj from
7 sys.x$ksppi x,
8 sys.x$ksppcv y
9 where
10 x.inst_id=userenv('Instance') and
11 y.inst_id=userenv('Instance') and
12 x.indx=y.indx and
13 x.ksppinm like '%_&par%'
14 order by
15 translate(x.ksppinm,'_','');
输入 par 的值: ksmg_granule
原值 13: x.ksppinm like '%_&par%'
新值 13: x.ksppinm like '%_ksmg_granule%'
NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
_ksmg_granule_size
4194304
TRUE FALSE FALSE
_ksmg_granule_locking_status
1
TRUE FALSE FALSE
NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
SQL> show parameter sga_max_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size big integer 135339604
SQL> alter system set sga_max_size=200M scope=spfile;
系统已更改。
SQL> startup force
ORACLE 例程已经启动。
Total System Global Area 210836936 bytes
Fixed Size 454088 bytes
Variable Size 184549376 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL>
SQL> select
2 x.ksppinm name,
3 y.ksppstvl value,
4 y.ksppstdf isdefault,
5 decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
6 decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj from
7 sys.x$ksppi x,
8 sys.x$ksppcv y
9 where
10 x.inst_id=userenv('Instance') and
11 y.inst_id=userenv('Instance') and
12 x.indx=y.indx and
13 x.ksppinm like '%_&par%'
14 order by
15 translate(x.ksppinm,'_','');
输入 par 的值: ksmg_granule
原值 13: x.ksppinm like '%_&par%'
新值 13: x.ksppinm like '%_ksmg_granule%'
NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
_ksmg_granule_size
8388608
TRUE FALSE FALSE
_ksmg_granule_locking_status
1
TRUE FALSE FALSE
NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
SQL> show parameter sga_max_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size big integer 210836936
SQL> alter system set sga_max_size=500M scope=spfile;
系统已更改。
SQL> startup force;
ORACLE 例程已经启动。
Total System Global Area 529604804 bytes
Fixed Size 454852 bytes
Variable Size 503316480 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> select
2 x.ksppinm name,
3 y.ksppstvl value,
4 y.ksppstdf isdefault,
5 decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
6 decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj from
7 sys.x$ksppi x,
8 sys.x$ksppcv y
9 where
10 x.inst_id=userenv('Instance') and
11 y.inst_id=userenv('Instance') and
12 x.indx=y.indx and
13 x.ksppinm like '%_&par%'
14 order by
15 translate(x.ksppinm,'_','');
输入 par 的值: ksmg_granule
原值 13: x.ksppinm like '%_&par%'
新值 13: x.ksppinm like '%_ksmg_granule%'
NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
_ksmg_granule_size
8388608
TRUE FALSE FALSE
_ksmg_granule_locking_status
1
TRUE FALSE FALSE
NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
SQL>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12361284/viewspace-114455/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12361284/viewspace-114455/