Mais um parâmetro de influência no CBO.
Este gera influência sob a percepção do “Otimizador Oracle” em calcular os custos para as operações de nested loop e iterações do tipo IN-List.
A configuração deste significa assumir quantos % dos blocos (dos respectivos índices) estarão em memória. Tendo o valor default igual a 0 (zero), que é o pior caso: “não há nenhum bloco em memória”.
Do lado contrário, quando este está configurado com o valor 100, signfica dizer: “100% dos blocos dos índices existentes na tabela estarão em memória”.
Deve ter-se atenção na configuração deste parâmetro, já que as operações de nested loop serão beneficiadas, sendo que, para alguns casos, está não será a melhor opção. Mas isto ficará para outro post.
Segue um pequeno exemplo da influência deste parâmetro sobre o comportamento da BD:
- Um select simples com IN-LIST iterator, com o optimizer_index_caching=0;
- O mesmo select, mas agora com o optimizer_index_caching=100;
Conclusão:
O parâmetro influência a percepção do Oracle sobre os custo, no exemplo acima, o custo será 4 se 100% dos blocos do índice M_IDX estiverem em memória, com isto, este tipo de operação teria menor custo. Devido a este controle e conhecimento da aplicação e configuração de todo ambiente é que torna difícil acertar um valor para tais parâmetros. Recomenda-se deixar sempre o default (zero) que seria o pior caso.
Use com moderação!!!!
Saudações Vascaínas….