内容阅读
在知识库中专注阅读,并随时返回相关工具与课程
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增加 PGA_AGGREGATE_LIMIT:ALTER SYSTEM SET pga_aggregate_limit=4G SCOPE=BOTH;
- 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优化查询以减少内存密集型操作
诊断命令
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