2.1.3 关于SGA的重要视图
要了解和观察SGA的使用情况,并且根据统计数据来处理问题和调整性能,主要有以下的几个系统视图。
2.1.3.1 v$sga
这个视图包括了SGA的的总体情况,只包含两个字段:name(SGA内存区名字)和value(内存区的值,单位为字节)。它的结果和show sga的结果一致,显示了SGA各个区的大小。
2.1.3.2 v$sgastat
这个视图比较重要。它记录了关于sga的统计信息。包含三个字段:Name(SGA内存区的名字);Bytes(内存区的大小,单位为字节);Pool(这段内存所属的内存池)。
这个视图尤其重要的是,它详细记录了个各个池(Pool)内存分配情况,对于定位4031错误有重要参考价值。
2.1.3.3 v$sga_dynamic_components
这个视图记录了SGA各个动态内存区的情况,它的统计信息是基于已经完成了的,针对SGA动态内存区大小调整的操作,字段组成如下:
字段 | 数据类型 | 描述 |
COMPONENT | VARCHAR2(64) | 内存区名称 |
CURRENT_SIZE | NUMBER | 当前大小 |
MIN_SIZE | NUMBER | 自从实例启动后的最小值 |
MAX_SIZE | NUMBER | 自从实例启动后的最大值 |
OPER_COUNT | NUMBER | 自从实例启动后的调整次数 |
LAST_OPER_TYPE | VARCHAR2(6) | 最后一次完成的调整动作,值包括:
|
LAST_OPER_MODE | VARCHAR2(6) | 最后一次完成的调整动作的模式,包括:
|
LAST_OPER_TIME | DATE | 最后一次完成的调整动作的开始时间 |
GRANULE_SIZE | NUMBER | GRANULE大小(关于granule后面详细介绍) |
2.1.3.4 V$SGA_DYNAMIC_FREE_MEMORY
这个视图只有一个字段,一条记录:当前SGA可用于动态调整SGA内存区的空闲区域大小。它的值相当于(SGA_MAX_SIZE – SGA各个区域设置大小的总和)。当设置了SGA_TARGET后,它的值一定为0。
2.1.4 SGA的管理
10g引入了ASMM(Automatic Shared Memory Management)这样一个可以进行自我调整的组件,该组件可以自动调整shared pool size、db cache size等SGA中的组件。只需要设置sga_target参数,则其它组件就能够根据系统的负载和历史信息自动的调整各个部分的大小。要启动ASMM,只需要设置statistics_level为typical或all。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/347643/viewspace-619852/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/347643/viewspace-619852/