› Fóruns › Banco de dados Oracle › Plano de execução › Plano de execução
5 de junho de 2009 às 11:39 pm
#87190
Participante
mpvargas,
no seu primeiro post está assim: SELECT STATEMENT Optimizer=CHOOSE (Cost=10 Card=1 Bytes=139)
Note que o otimizador esta CHOOSE, ou seja, o oracle decide de usará custou ou regra. O problema é que o regra no oracle 9 é muito zoado, só funciona direito no 10g.
Faça o seguinte teste:
Repita a consulta que você tirou no 1o post e veja o plano de execução.
Em seguida de um alter session, setando o otimizador para RULE e execute a mesma consulta.
Coloque ambos os planos aqui. O problema do CHOOSE é que, se você tem 1000 tabelas no banco e somente UMA tem estatísticas colhidas, o Oracle já usa custo ao inves de regra. E no caso do 9i, o tipo RULE é o mais indicado.