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 初始化参数限制整体的