MEMORY_TARGET 和 MEMORY_MAX_TARGET 是 Oracle Database 11g 中的两个新参数。这两个参数确定如何对 Oracle 数据库使用自动内存管理功能。Oracle 强烈建议使用自动内存管理功能来管理系统中的内存。通过将这两个参数设置为非零值,Oracle 将启用自动内存管理功能并将内存调整到目标内存大小,根据需要在系统全局区 (SGA) 和实例程序全局区 (PGA) 之间重新分配内存。因此,以下参数将自动设置大小:
SGA_TARGET
SGA_MAX_SIZE
DB_CACHE_SIZE
SHARED_POOL_SIZE
LARGE_POOL_SIZE
JAVA_POOL_SIZE
STREAMS_POOL_SIZE
PGA_AGGREGATE_TARGET
但是,LOG_BUFFER 不受自动内存管理功能控制,仍需手动设置大小。本节稍后讨论如何调整 LOG_BUFFER。
因为 MEMORY_TARGET 会指定 SGA 和 PGA 的总内存大小,所以,应将其设置为相对较高的值才能实现较高性能。Oracle Hyperion Financial Management 合并和报告是内存密集型任务,需要大量内存。鉴于 32 位操作系统在可用地址空间方面存在限制(通常为 2 GB 或 3 GB),Oracle 建议至少将此参数设置为 1.2 GB。通常,值越高,Oracle 数据库性能就越高,因此,应在不超出虚拟地址空间的情况下将此参数设置为尽可能高的值。
建议设置:最小 1.2GB,通常高于 1.2GB(取决于环境)。
决定要分配给 Oracle 11g 实例的内存量时,请查看此部分:“如何计算 Oracle Database 11g 的进程数”。