OLATOracle Log Analysis Tool Abrir a ferramenta
GraveMemória

ORA-04031

Memória insuficiente no shared pool

O que significa

Sem chunk contíguo na SGA (shared/large pool). Clássico de excesso de SQL com literais (sem bind variables) fragmentando a library cache; também subdimensionamento.

Ação imediata

Verifique se é fragmentação (muitos SQLs quase iguais) ou falta real de memória.

Como diagnosticar somente leitura — seguro de executar

V$SGASTAT (free memory por subpool)
  • V$SHARED_POOL_ADVICE
SELECT force_matching_signature, COUNT(*) FROM v$sql GROUP BY 1 ORDER BY 2 DESC (literais)
  • AWR: hard parses/s.

Correção definitiva

Bind variables na aplicação (paliativo: CURSOR_SHARING=FORCE); aumentar SGA_TARGET/SHARED_POOL_SIZE.

Como prevenir

Padronizar binds; monitorar hard parse e uso por subpool.

Nota de versão

Em multitenant, verifique também limites de memória por PDB (MEMORY_LIMIT em 19c+).

Erros relacionados (Memória)

Vinicius Gabriel Lana

Vinicius Gabriel Lana

Sócio & CTO na MigraTI Soluções em TI · 8 anos como DBA (Oracle, SQL Server, PostgreSQL, MySQL)