Qual é o seu memory_target definido? Se estiver alto, então eu não ficaria surpreso em ver crescer até o tamanho máximo ao longo do tempo. Dê uma olhada aqui para obter mais informações sobre o novo parâmetro memory_target em 11g . Isso colocará um limite na quantidade de memória que o Oracle tentará obter.
O parâmetro memory_target configura o Oracle para gerenciar automaticamente os parâmetros de memória que costumavam exigir atenção individual:
- DB_CACHE_SIZE
- SHARED_POOL_SIZE
- LARGE_POOL_SIZE
- JAVA_POOL_SIZE
- PGA_AGGREGATE_TARGET
Uma observação é que o STATISTICS_LEVEL deve ser definido como TÍPICO.
Dois parâmetros estão envolvidos aqui: memory_max_target e memory_target. O primeiro define o valor máximo para memory_target e requer que uma instância seja reiniciada para alterar:
ALTER SYSTEM SET memory_max_target = 1500M SCOPE=SPFILE;
Uma vez no lugar, o parâmetro memory_target pode ser configurado dinamicamente sem uma reinicialização de instância:
ALTER SYSTEM SET memory_target = 1000M;
Este é um ótimo recurso para pessoas que desejam uma configuração básica de gerenciamento de memória "configure e esqueça". Defina o valor mais alto que você acha que precisará para o memory_max_target e, em seguida, reproduza com o valor de memory_target para ajustar suas necessidades. Deixe o Oracle gerenciar os parâmetros individuais. A Oracle usará as estatísticas da instância para gerenciar esses valores, de modo que, à medida que sua instância evoluir em termos de padrões de uso, a Oracle levará isso em conta.
Outra referência interessante sobre esses parâmetros pode ser encontrada no Oracle Wiki da Oracle FAQ .