跳到主要内容
内容阅读

在知识库中专注阅读,并随时返回相关工具与课程

ORA-04036严重性能

实例使用的 PGA 内存超过 PGA_AGGREGATE_LIMIT

PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT

错误描述

所有会话消耗的 PGA 内存总量超过 PGA_AGGREGATE_LIMIT 参数。Oracle 将终止消耗最多不可调 PGA 内存的会话。

可能原因

  • PGA_AGGREGATE_LIMIT 对于工作负载设置过低
  • PL/SQL 代码或应用程序中的内存泄漏
  • 大型排序、哈希连接或位图操作消耗过多 PGA

解决方案

  1. 1增加 PGA_AGGREGATE_LIMIT:ALTER SYSTEM SET pga_aggregate_limit=4G SCOPE=BOTH;
  2. 2识别高 PGA 消费者:SELECT sid, pga_alloc_mem FROM v$process p JOIN v$session s ON p.addr = s.paddr ORDER BY pga_alloc_mem DESC;
  3. 3优化查询以减少内存密集型操作

诊断命令

SHOW PARAMETER pga_aggregate;
SELECT * FROM v$pgastat;
SELECT pid, pga_used_mem/1024/1024 used_mb, pga_alloc_mem/1024/1024 alloc_mb, pga_max_mem/1024/1024 max_mb FROM v$process ORDER BY pga_alloc_mem DESC FETCH FIRST 10 ROWS ONLY;
#performance#pga#memory#aggregate-limit

同类错误码(性能)

想系统掌握这个领域?

「性能」在课程 Day 81-90 中有 10 篇完整实战教程

完整操作步骤真实截图踩坑总结
查看完整课程¥128/月起 · 解锁全部 2738+ 篇
ORA-04036: 实例使用的 PGA 内存超过 PGA_AGGREGATE_LIMIT - 原因与解决方案 | DBA 学习之路