在数据库使用asmm内存管理时show parameter 查看自动调整的内存组件都为0,如:

 

SQL> show parameter shared_pool_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
shared_pool_size                     big integer 0

    那么我们如何查看asmm数据库的该部分内存组件实际使用量呢?我们可以通过如下语句查询:

 col component format a30;

 select component, current_size,min_size,max_size,user_specified_size from v$sga_dynamic_components;

如:

 

SQL> col component format a30;
SQL> select component, current_size,min_size,max_size,user_specified_size from v$sga_dynamic_components;
COMPONENT                      CURRENT_SIZE   MIN_SIZE   MAX_SIZE USER_SPECIFIED_SIZE
------------------------------ ------------ ---------- ---------- -------------------
shared pool                      2952790016 2952790016 2952790016                   0
large pool                         67108864   67108864   67108864                   0
java pool                          67108864   67108864   67108864                   0
streams pool                              0          0          0                   0
DEFAULT buffer cache             2.7649E+10 2.7649E+10 2.7649E+10                   0
KEEP buffer cache                         0          0          0                   0
RECYCLE buffer cache                      0          0          0                   0
DEFAULT 2K buffer cache                   0          0          0                   0
DEFAULT 4K buffer cache                   0          0          0                   0
DEFAULT 8K buffer cache                   0          0          0                   0
DEFAULT 16K buffer cache                  0          0          0                   0
DEFAULT 32K buffer cache                  0          0          0                   0
Shared IO Pool                            0          0          0                   0
ASM Buffer Cache                          0          0          0                   0
14 rows selected.

 

 

--下面是关于SGA和ASMM的一些基本知识
1.SGA组成
   Oracle的SGA基本内存组件从9i开始并没有非常大的变化,他们包括:
Buffer Cache 我们常说的数据库高速缓存,虽然我一直不明白要冠以高速之名
Default Pool                  默认的缓冲池,大小由DB_CACHE_SIZE决定
Keep Pool                     持久的缓冲池,大小由DB_KEEP_CACHE_SIZE决定
Non standard pool         非标准块标准池,大小由DB_nK_cache_size决定
Recycle pool                 回收池,大小由db_recycle_cache_size决定
Shared Pool 共享池,大小由shared_pool_size决定
Library cache   俗称的库缓存
Row cache      行缓存,也叫字典缓存
Java Pool         java池,大小由Java_pool_size决定
Large Pool       大池,大小由Large_pool_size决定
Fixed SGA       固定的SGA区域,包含了Oracle内部的数据结构,一般被存放在第一个granule中  

2.ASMM影响的内存组件  
  ASMM下一部分参数是自动设置的(Automatically set),这些参数包括:
shared_pool_size、db_cache_size、java_pool_size、large_pool _size和streams_pool_siz
  而另外一些是需要手动设置的静态参数,包括:
db_keep_cache_size、db_recycle_cache_size、db_nk_cache_size、log_buffer以及固定SGA内存结构
等,如果以上没有手动设置这些参数的话,除去log_buffer和fixed sga其他内存组件一般默认大小为零。