全局共享内存(SGA)
CR_POOL_SIZE
参数描述:一致性读页面缓存区(即CR pool )的大小。
请根据实际内存大小配置,配置较大值可以加速并发场景下数据访问速度。
取值范围:整数,[16M,32T],单位为字节。
默认值:32M
注:在并发访问场景下,当前数据页面可能对当前session不具有可见性,需要利用事务原理构建可见页面,称作一致性读页面。
CR_POOL_COUNT
参数描述:一致性读页面缓存分区(即CR pool分区)的数量。
请根据实际内存大小配置,配置较大值可以减少不同通过session之间的竞争,加速并发场景下数据访问速度。
取值范围:整数,[1,256]。
默认值:1
DATA_BUFFER_SIZE
参数描述:设置数据BUFFER区的大小。数据BUFFER区用于缓存最近访问的数据。
取值范围:整数,[64M,32T],单位为字节。
请根据实际内存大小配置,配置较大值可以加速数据访问速度。
默认值:128M
SHARED_POOL_SIZE
参数描述:Shared Pool的大小。
Shared Pool包括lock pool、sql pool、dc pool一起共享使用的空间。
取值范围:整数,[82M,32T],单位为字节。
请根据实际内存大小配置,配置较大值可以加速数据访问速度。
默认值:128M
_SQL_POOL_FACTOR
参数描述:SQL POOL在SHARED POOL中的最大比例。
- DC POOL在SHARED POOL中的最大比例为1-_SQL_POOL_FACTOR。
- 当DC不足时(dc所有页面数为B),通过dv_gma_stats可以查出SQL POOL当前所用的页面数(记为A),则SQL POOL与DC POOL的建议比例可为0.8A:B,特殊场景可能要做几轮尝试配置。
取值范围:数值,[0.001, 0.999]
默认值:0.5
备注:
VARIANT_MEMORY_AREA_SIZE
参数描述:存放执行过程中小于16K变量(绑定参数等)的内存区(VMA)大小,内存区内一页大小为16K。设置后重启生效。
取值范围:数值,[4M, 32T]
默认值:32M
配置建议:安装数据库时,参数建议设置为VARIANT_MEMORY_AREA_SIZE = 16K * _VMP_CACHES_EACH_SESSION * SESSIONS * 1.1;升级数据库时,参数建议设置为VARIANT_MEMORY_AREA_SIZE = _VARIANT_AREA_SIZE * SESSIONS * 0.8;
LARGE_VARIANT_MEMORY_AREA_SIZE
参数描述:存放执行过程中小于256K变量(绑定参数等)的内存区(LARGE VMA)大小,内存区内一页大小为256K。设置后重启生效。
取值范围:数值,[1M, 32T]
默认值:32M
配置建议:安装数据库时,参数可取默认值;升级数据库时,参数建议设置为LARGE_VARIANT_MEMORY_AREA_SIZE = _VARIANT_AREA_SIZE * SESSIONS * 0.2。
若存在绑定参数过多的场景(比如超过1000)而且执行频繁,建议可适当调大LARGE_VARIANT_MEMORY_AREA_SIZE的值。
_VMP_CACHES_EACH_SESSION
参数描述:每个会话上可缓存16K的VMA内存页数量(256K页面内存不缓存)。当VMA剩余内存不足10%时,部分session不会缓存,尽力保持VMA剩余内存超过10%。设置后立即生效。
取值范围:数值,[0, 4294967295]
默认值:8
配置建议:安装数据库时,参数可取默认值;升级数据库时,参数也可取默认值,但如果_VMP_CACHES_EACH_SESSION * SESSIONS * 16K 远大于VARIANT_MEMORY_AREA_SIZE,建议调低_VMP_CACHES_EACH_SESSION取值,同时考虑到性能问题,建议大于4。
内存配置不合适,不会影响功能,但会影响性能及OS内存的平稳性(即可能会向OS不停地申请与释放内存)。
LARGE_POOL_SIZE
参数描述:Large pool的大小。
取值范围:整数,[4M,32T],单位为字节。
根据实际内存大小配置,配置较大值可以加速数据访问速度。
默认值:32M
LOG_BUFFER_SIZE
参数描述:Log buffer的大小。Log buffer用于缓存Redo日志。
取值范围:整数,[1M,128M],单位为字节。
根据实际内存大小配置,配置较大值可以加速数据访问速度。
默认值:4M
LOG_BUFFER_COUNT
参数描述:Log buffer的数量。
取值范围:整数,(0,16]。
默认值:4
TEMP_BUFFER_SIZE
参数描述:Temp buffer的大小。
取值范围:整数,[32M,21T],单位为字节。
根据实际内存大小配置,配置较大值可以加速数据访问速度。
默认值:32M
TEMP_POOL_NUM
参数描述:Temp pool(即Temp buffer分区)的数量。
每个session启动时根据session id映射到某个Temp pool中,后续该session从这个Temp pool里分配vm page。
取值范围:整数,[1,128]。
默认值:1
USE_LARGE_PAGES
参数描述:设置数据库对SGA内存中大页面的使用方式。
取值范围:
- TRUE
指定TRUE后,启用大页面,如果在系统上配置了大页功能,则实例可以使用大页。
- FALSE
不启用大页面。不建议使用此设置,因为它可能会导致实例的性能严重下降。
默认值:TRUE
_MAX_VM_FUNC_STACK_COUNT
参数描述:记录TEMP POOL中vmid = 0至_MAX_VM_FUNC_STACK_COUNT-1 的vm申请时的堆栈信息,与视图DV_VM_FUNC_STACK配套使用,当配置为0时,代表不启用。当_MAX_VM_FUNC_STACK_COUNT该参数初始值为0时(启动时),允许在运行期修改一次非0值进行立即生效。否则,都是重启生效。
取值范围:整数,[0, 4294967295]
默认值:0
_SGA_CORE_DUMP_CONFIG
参数描述:设置SGA中哪些内存在数据库core dump时,不记录到core文件中。
取值范围:整数,[0,16383]
默认值:0
下表列出了各内存池及其对应标志,如需将对应的内存池的内存在数据库core dump时不写入core文件,则将_SGA_CORE_DUMP_STACK参数值设置成相应标志值之和。
如data buffer的内存不写入coredump文件中,配置为1。如配置data_buffer、temp_buffer和shared_pool都不写入,则配置1+2+4=7。
配置为0,则SGA中所有内存都记录到core文件中。
内存池 |
16进制取值 |
10进制取值 |
---|---|---|
DATA_BUFFER |
0x00000001 |
1 |
TEMP_BUFFER |
0x00000002 |
2 |
SHARED_POOL |
0x00000004 |
4 |
LOG_BUFFER |
0x00000008 |
8 |
CR_POOL |
0x00000010 |
16 |
VARIANT_MEMORY_AREA |
0x00000020 |
32 |
LARGE_VARIANT_MEMORY_AREA |
0x00000040 |
64 |
LARGE_POOL |
0x00000080 |
128 |
DBWR_BUFFER |
0x00000100 |
256 |
TRAN_BUFFER |
0x00000200 |
512 |
LGWR_BUFFER |
0x00000400 |
1024 |
INDEX_BUFFER |
0x00000800 |
2048 |
LGWR_ASYNC_BUF |
0x00001000 |
4096 |
LGWR_HEAD_BUF |
0x00002000 |
8192 |