http://note.youdao.com/share/?id=46fea8a60b38ee50ee3abb3bd612d8ba&type=note
ASMM的出现极大的简化了设置内存初始化参数的设置,要知道,这在8i/9i可是个功夫话。
我们在了解ASMM时一定会有这样几个问题。
- 如何查看是否设置了ASMM,如何启用。
- memory_max_target=pga+sga如何验证
- 在SGA中的Variable Size是由哪些内存组件组成。
- 自动内存管理依什么变化。
MEMORY_TARGET 不为0,则为PGA和SGA自动管理,如果MEMORY_TARGET 为0,SGA不为0,则SGA为自动管理。
如果MEMORY_TARGET和sga_target都设置了值,哪系统如何分配内存呢?
sga_target设置的值为自动分配的最小值。
图中,就是已经启用了ASMM
SQL> show parameters target
2. memory_max_target=pga+sga 吗,如何验证不一定,应该是
memory_max_target = sga_target + max(pga_aggregate_target, maximum PGA allocated)
SQL> select component,current_size,user_specified_size from v$memory_dynamic_components ;
SQL> select value from v$pgastat where name='maximum PGA allocated';
SQL> select (989855744+671088640)/1024/1024 from dual; (989855744+671088640)/1024/1024
-------------------------------
1584
这里1584 刚好是memory_max_target.
3. 启动了ASMM,Variable Size包括哪些组件在v$memory_dynamic_components中,shared pool +large pool +java pool +streams pool,
如下SQL> show sga;
SQL> select * from V$SGA_DYNAMIC_FREE_MEMORY;
CURRENT_SIZE
------------
671088640
依v$memory_dynamic_components SQL> select 318767104+33554432+16777216+16777216 from dual;
318767104+33554432+16777216+16777216
------------------------------------
385875968
SQL> select * from V$SGA_DYNAMIC_FREE_MEMORY;
CURRENT_SIZE 671088640
SQL> select 385875968+671088640 from dual;
385875968+671088640 = 1056964608
这里的值和SGA中的Variable Size一致。=shared pool +large pool +java pool +streams pool
4.自动内存管理依什么变化。这里的内存的自动调整由三个视图作参考,如下。v$memory_target_advice
V$SGA_TARGET_ADVICE
;
V
$PGA_TARGET_ADVICE
---------------end-------------------
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/203348/viewspace-1258427/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/203348/viewspace-1258427/