Para verificarmos a utilização de memória de nosso banco de dados e se sua utilização está ocorrendo de forma adequada, podemos seguir os passos abaixo, onde teremos uma visão inicial do comportamento e da utilização da memória interna do banco de dados.
1) Utilização da SGA
Uma das formas de verificação é analisarmos se está ocorrendo muito redimensionamento automático de memória.
Se isto estiver ocorrendo, pode ser necessário aumentarmos o tamanho da SGA.
Uma forma de avaliarmos esses redimensionamentos é com o SQL abaixo:
select component, oper_type, oper_mode, parameter, initial_size/1024/1024/1024 as initial_size_MB, final_size/1024/1024/1024 as final_size_MB, to_char(start_time,'dd/mm/yyyy hh24:mi:ss') start_time, to_char(end_time,'dd/mm/yyyy hh24:mi:ss') end_time from v$memory_resize_ops;
COMPONENT PARAMETER INITIAL_SIZE_MB FINAL_SIZE_MB
------------------------------------------ ------------------------------------ ------------------------------ --------------------------------
shared pool shared_pool_size 0 30
ASM Buffer Cache db_cache_size 0 0
java pool java_pool_size 0 3,5
streams pool streams_pool_size 0 1
SGA Target sga_target 0 0
large pool large_pool_size 0 3,5
DEFAULT buffer cache db_cache_size 94,5 94,5
DEFAULT buffer cache db_cache_size 0 94,5
KEEP buffer cache db_keep_cache_size 0 0
RECYCLE buffer cache db_recycle_cache_size 0 0
DEFAULT 2K buffer cache db_2k_cache_size 0 0
DEFAULT 4K buffer cache db_4k_cache_size 0 0
DEFAULT 8K buffer cache db_8k_cache_size 0 0
DEFAULT 16K buffer cache db_16k_cache_size 2 2
DEFAULT 16K buffer cache db_16k_cache_size 0 2
DEFAULT 32K buffer cache db_32k_cache_size 0 0
In-Memory Area inmemory_size 0 0
PGA Target pga_aggregate_target 0 30
DEFAULT buffer cache db_cache_size 94,5 94,5
Analisando os resultados obtidos acima, percebemos que alguns componentes da SGA estão sofrendo redimensionamento e isto indica a possibilidade de aumento da SGA do banco de dados que estamos analisando.
2) utilização de PGA
A verificação na PGA, pode ser feita com o SQL abaixo, onde devemos verificar se o valor do campo "ESTD_OVERALLOC_COUNT" é maior que 0 (zero).
Se o valor for maior que zero, devemos aumentar o tamanho da PGA.
SELECT round(PGA_TARGET_FOR_ESTIMATE/1024/1024) target_mb, ESTD_PGA_CACHE_HIT_PERCENTAGE cache_hit_perc,ESTD_OVERALLOC_COUNT FROM V$PGA_TARGET_ADVICE;
TARGET_MB CACHE_HIT_PERC ESTD_OVERALLOC_COUNT
-------------------- ------------------------------ --------------------------------------------
1125 92 0
2250 92 0
4500 92 0
6750 92 0
9000 92 0
10800 100 0
12600 100 0
14400 100 0
16200 100 0
18000 100 0
27000 100 0
36000 100 0
54000 100 0
72000 100 0
- O Campo TARGET_MB informa o valor da PGA;
- O Campo CACHE_HIT_PERC informa o percentual de utilização do cache da PGA;
- O Campo ESTD_OVERALLOC_COUNT informa se ocorreu "estouro" da PGA configurada atualmente;
Para validarmos se precisamos ou não aumentar a PGA, devemos fazer a seguinte comparação:
1) Da lista TRAGET_MB informada, qual o valor de PGA configurada para nosso ambiente?
2) Na coluna ESTD_OVERALLOC_COUNT correspondente ao nosso TRAGET_MB o valor é maior que zero?
Se a resposta para o item 2 acima for sim, devemos avaliar a possibilidade de aumentar a PGA.
Referência:
http://www.oracle.com/technetwork/pt/articles/database-performance/configurando-sga-pga-database-3210653-ptb.html