Neto, foi escrito basicamente TODO UM LIVRO explicando internal do CBO, é o 
livro "Cost-Based Oracle Fundamentals" do autor Jonathan Lewis : se vc quer 
entender o funcionamento interno de um Otimizador de SQLs por Estimativa de 
Custos/Consumo de Recursos de um plano de execução, ESSE é o livro que vc TEM 
que ler de fio a pavio....
 Mas respondendo à sua pergunta SIM : não é Impossível o CBO falhar na sua 
estimativas - pra começo de conversa ele é um SOFTWARE, e SOFTWAREs PODEM TER 
BUGS... Segundo, ele é um SOFTWARE que trabalha baseado em ESTATÍSTICAS (já que 
é INVIÁVEL o RDBMS ter a cada momento a certeza PRECISA da distribuição de 
dados, por exemplo : ele vai ESTIMAR isso... E em TERCEIRO LUGAR, como eu já 
disse, eu Repito : absolutamente NÂO DÁ pra saber de antemão COM 100% de 
CERTEZA o tempo que o acesso a um índice ou à uma tabela vai levar (pois NÂO 
SABEMOS se os blocos vão estar em cache ou não, NÂO SABEMOS se o sub-sistema de 
I/O do servidor Oracle tá totalmente responsivo OU se tem outras sessões 
consumindo, NÃO SABEMOS se o índice ou a tabela está "FRAGMENTADO" - ie, se 
possui alguma issue referente à espaço em disco ou à I/O formatado -, NÃO 
SABEMOS se o SQL está tendo que esperar por WAITs do sistema)... Blz ???
 
 Mas de modo geral SIM , como o CBO é baseado em Estatísticas e Tendências de 
distribuição de dados, se vc ver um número de Custo uma Ordem de Grandeza maior 
pra um plano que na verdade executa mais rápido COM CERTEZA ou é bug, ou é 
análise estatística falha ou é concorrência (inclusive com sessões internas do 
RDBMS) ou é gargalo de recursos externos (seja CPU, I/O, rede, o que for)...
 
 []s
 
   Chiappa
   
OBS : é importante que quando eu falo de ordem de grandeza, quero dizer que os 
Custos em comparação devem ser de agrupamentos diferentes : por exemplo, um 
custo na ordem das centenas pra um plano que demora mais VERSUS um plano com 
custo na ordem dos MILHARES (ou seja, totalmente diferentes da realidade) 
indica falha no CBO, mas (tal como no seu exemplo) um custo de 100 versus um 
custo de 80 (ambos muito próximos da casa das centenas)provavelmente indica uma 
situação de estatísticas inconclusivas, ou uma situação onde todos os métodos 
que o CBO testou nenhum se destacou CLARAMENTE como o melhor...

Responder a