quinta-feira, 4 de junho de 2009

SGA and ASMM

A partir do Oracle 9i foi introduzido o conceito de auto gerenciado de memória dentro do Oracle, esse é um recurso muito importante, pois memória é um recurso limitado e diversos bancos apresentam inumeros comportamentos em horários de trabalho diferentes, necessitando uma alocação de memória diferente a cada processo ou carga de trabalho.

Para solucionar o problema de alocação manual de espaço a Oracle introduzio o novo conceito, ASMM, com as área de memória com caracteristica de auto-alocaveis podem variar de tamanho dinamicamente e de acordo com a real necessecidade do momento.

Para habilitar essa feature temos que levar realizar:

Parametro: sga_target > 0 e <= sga_max_size. Parametro: statistics_level = typical ou all. ASMM utiliza um novo processo de segundo plamp chamado MMAN (Memory Manager), o qual observa a utilização e realiza o rebalanciamento da memória, para melhor alocação de recursos o MMAN realiza os seguintes processos:
  • Captura estatistica;
  • Usa advisor de memória;
  • Realiza "What if" analise;
  • Move memória;
  • Escreve spfile.
O total de memória para os parametros de auto-tune são alocados pela seguinte formula:

SGA_TARGET - parametros de não auto administraveis.

Segue a referencia:

Parametros auto administrados

- Shared Pool
- Database Buffer Cache
- Streams Pool
- Java Pool
- Large Pool

Não auto administrados

- Redo log buffer
- Keep e Recycle buffer cache
- Tamanho de blocos não padrão para o database buffer cache