Oracle 调整11.2中的PGA_聚合_目标

Oracle 调整11.2中的PGA_聚合_目标,oracle,performance,awr,Oracle,Performance,Awr,我已经从我们的服务器上附加了AWR报告的输出,它遇到了性能问题 附件是AWR报告中的PGA建议 这是否表明PGA短缺 PGA Memory Advisor报告暗示了两件事: 更改PGA\u AGGREGATE\u TARGET的值将不会提高性能 有一个记忆问题值得研究 提高性能 根据“估计时间”列,将PGA_AGGREGATE_目标从当前值9600 MB更改为PGA_AGGREGATE_目标对性能的影响不到1%。如果内存缩小到当前值的13%或增加到当前值的800%,则总DB时间或“Estd时间”

我已经从我们的服务器上附加了AWR报告的输出,它遇到了性能问题

附件是AWR报告中的PGA建议

这是否表明PGA短缺


PGA Memory Advisor报告暗示了两件事:

  • 更改
    PGA\u AGGREGATE\u TARGET的值将不会提高性能
  • 有一个记忆问题值得研究
  • 提高性能 根据“估计时间”列,将PGA_AGGREGATE_目标从当前值9600 MB更改为
    PGA_AGGREGATE_目标
    对性能的影响不到1%。如果内存缩小到当前值的13%或增加到当前值的800%,则总DB时间或“Estd时间”几乎不会改变

    通常情况下,如果Oracle认为数据库时间不会改善,那么就没有必要进行更改。但是,在这种情况下,发生了一些奇怪的事情

    估计PGA超额分配计数 数据库中的某些内容正在使用过多的PGA内存

    参数
    PGA\u AGGREGATE\u TARGET
    用于控制排序和哈希等操作的可用内存量。PGA的其他用途可能会迫使系统超过该目标。报告列“Estd PGA Overalloc Count”意味着数据库中的某些内容占用了超过28800 MB的内存。你可能想找到那个记忆猪;消除它可能会释放内存,从而以其他方式间接提高性能

    使用以下两个查询查找当前和历史PGA内存问题。我的猜测是,要么系统有太多的连接,要么会话正在做一些愚蠢的事情,比如使用
    批量收集将巨大的表加载到内存中。你会想找出那些令人不快的会话,然后确切地找出它们在做什么,这些操作占用了这么多内存

    --PGA in current sessions:
    select inst_id, sid, round(value/1024/1024) mb
    from gv$sesstat
    join v$statname on gv$sesstat.statistic# = v$statname.statistic#
    where name = 'session pga memory'
    order by value desc, sid;
    
    --PGA allocated in historical sessions.
    select round(pga_allocated/1024/1024/1024, 1) gb, gv$active_session_history.*
    from gv$active_session_history
    where pga_allocated is not null
    order by pga_allocated desc;