Tamanho ideal para Shared Pool?
Não sabe? Pergunte ao Oracle …
A shared pool (pool compartilhado) é um elemento obrigatório da SGA e se divide em uma série de estruturas de memória. O DBA não tem controle sobre o tamanho delas, o próprio Oracle que faz essa parte dinamicamente dentro do limite do parâmetro SHARED_POOL_SIZE.
Uma shared pool pequena é muito ruim para o desempenho. E um shared pool excessivamente grande também prejudica o desempenho. Mas qual o tamanho ideal ?
Alguns tentam acertar pela sorte e outros pela tentativa, mais nada melhor do que saber o que o Oracle precisa
sys@ORCL> select shared_pool_size_for_estimate "size",
2 shared_pool_size_factor "factor",
3 estd_lc_time_saved "result"
4 from v$shared_pool_advice;
size factor result
---------- ---------- ----------
400 .5 788,794
480 .6 790,444
560 .7 791,191
640 .8 791,589
720 .9 791,973
800 1.0 791,917
880 1.1 792,013
960 1.2 792.079
1.040 1.3 792.106
1.120 1.4 792.122
1.200 1.5 792.139
1.280 1.6 792.156
1.360 1.7 792.171
1.440 1.8 792.181
1.520 1.9 792.187
1.600 2.0 792.199
Esta view mostra a quantidade de tempo de parsing que seria economizado pelo pool compartilhado se tivesse um determinado tamanho.
No exemplo o pool atual tem 800 MB, o que podemos ver claramente que é muito maior que o necessário. Se baixarmos o tamanho dela para 480MB teríamos uma grande economia de memória com uma pequena queda de parsing.