[firebase-br] Posição de campos em indices

Sandro Souza escovadordebits em gmail.com
Qua Jul 1 12:14:43 -03 2009


Bom dia/tarde Jonas.

Grande Jonas, realmente fui eu que cometi o engano.

Eu executei os seguintes passos:

CREATE TABLE TESTE(A INTEGER NOT NULL, B INTEGER NOT NULL, C INTEGER NOT
NULL);
COMMIT;

INSERT INTO TESTE VALUES(1,2,3);
COMMIT;

SELECT * FROM TESTE WHERE(C = 3)AND(B = 2)AND(A = 1);

E quando verifiquei o PLAN deu "PLAN (TESTE NATURAL)", ou seja, como nosso
amigo Douglas Tosi nos informou, a ordem de consulta realmente influencia na
escolha do índice.

Minha humilde opinião é que o otimizador de plano deveria ser melhorado para
perceber que, independente dessa ordem, todos os campos do índice estão ali,
e ainda mais com valores fixos p/ facilitar mais ainda.

Realmente eu imaginei que o otimizador de plano já era inteligente nesse
ponto. É uma pena. Mas foi muito proveitosa essa situação para aprender mais
um pouco.

Muito obrigado a todos, e especialmente ao Douglas Tosi que nos esclareceu.

2009/7/1 Jonas <jonas em hos.com.br>

> certo.. pelo que pude verificar pelo 'plan' a ordem influencia msmo, muito
> obrigado a todos!
>
> ----- Mensagem original -----
> De: samuel ferreira <samuel.peres.ferreira em gmail.com>
> Para: FireBase <lista em firebase.com.br>
> Enviadas: Wed, 1 Jul 2009 11:11:47 -0300 (BRT)
> Assunto: Re: [firebase-br] Posição de campos em indices
>
> ola
>
> o indice e formado pelos campos a, b, c
>
>
> ele sempre vai ser utilizado se no where tiver o 'a', ou 'a b' ou 'a b c'
>
> se vc fizer um where SOMENTE com 'b' ou 'c' nao vai ser utilizado.
>
> pelo menos, na minha concepcao e pelo q tenho visto,mas vc pode usar um
> 'plan' e verificar
>
>
> como diz um colega ai da lista, espero ter ajudado mais do q atrapalhado
>
>
> samuel
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista