Por que o Oracle 11g na instalação padrão do Windows continua aumentando o uso de memória, mesmo quando ocioso?

2

Instalei o Oracle 11g no meu desktop Windows XP de 64 bits com praticamente as opções padrão. Agora, quando eu inicio o banco de dados, ele apenas aumenta o uso de memória algumas centenas de KB de cada vez, mesmo quando o banco de dados não está em uso. No momento eu estou olhando para o Gerenciador de Tarefas do Windows e está mostrando oracle.exe usando mais de 1,4 G e contando.

O que está acontecendo? Como posso definir um limite máximo para o uso da memória?

É uma máquina de desenvolvimento e banco de dados não será enorme na maioria dos casos. Mesmo quando eles são enormes, o número de usuários simultâneos será muito pequeno.

    
por Tahir Akhtar 25.04.2011 / 13:02

1 resposta

3

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 .

    
por 25.04.2011 / 21:50