9i 之前通过设置 *_AREA_SIZE 参数来指定 PGA 中各个区域的大小(注意是会话级大小)。
9i 及之后通过 workarea_size_policy = AUTOpga_aggregate_target 进行自动管理。

注意: P_A_T 只是一个目标值,并不是绝对限制。

设置 PGA 值的方法

方法一:
经验值:
OLTP:物理内存*80%*20%
OLAP:物理内存*80%*50%

方法二:
v$pga_target_advice
ESTD_OVERALLOC_COUNT 至少应该是0,另外结合 ESTD_TIME 和 ESTD_PGA_CACHE_HIT_PERCENTAGE 来决定。

评估PGA设置是否合理的方法

1.查看 AWR 报告中的 PGA Cache Hit%
2.分析 direct path read temp 和 direct path write temp 是否较高
3.观察 v$pgastat 中的 'over allocation count' 的值,理想值是0,否则表示 Oracle 实际分配的 PGA 大小已经超过了 P_A_T 参数指定的值。当出现此种情况时,Oracle 认为每个 Server Process 进程可能需要更多的 PGA 区域,于是 PGA 算法就为每个进程分配更多的资源,会加快内存溢出的速度。

-- By 许望(RHCA、OCM、VCP)
最后修改:2020 年 05 月 06 日 01 : 03 PM
如果觉得我的文章对你有用,请随意赞赏