Oracle 12c 新参数 PGA_AGGREGATE_LIMIT 限制 PGA 内存总大小
在自动
PGA
内存管理模式下,
Oracle DB
尝试通过动态控制分配给工作区的
PGA
内存量遵从
PGA_AGGREGATE_TARGET
中指定的值。但是,有时候
PGA
内存使用量可能会因为以下原因超过
PGA_AGGREGATE_TARGET
指定的值:
•PGA_AGGREGATE_TARGET
是一个目标,而不是一个限制。
•PGA_AGGREGATE_TARGET
仅控制可优化内存的分配。
过多的
PGA
使用量可能会导致高交换率。如果出现
PGA
的使用量大大超过
PGA_AGGREGATE_TARGET
参数的值,就可能产生
SWAP
,从而影响整个系统的性能,更进一步导致
DB hang
住。因此在
Oracle 12c
中引入了新的参数
PGA_AGGREGATE_LIMIT
,其可以限制整体
PGA
使用量。
PGA_AGGREGATE_LIMIT
限制的是实例消耗的
PGA
的总量。是一个硬性限制。
PGA_AGGREGATE_LIMIT
参数是动态参数;修改该参数不需要重新实例。设置
PGA_AGGREGATE_LIMIT
的值时也不需要关心是否使用了自动内存管理。
如果发生
PGA
超量使用的
情况,请考虑使用
PGA_AGGREGATE_LIMIT
初始化参数限制整体的