[firebase-br] Posição de campos em indices
Eduardo Jedliczka
jedyfb em gmail.com
Qua Jul 1 14:20:46 -03 2009
neste seu exemplo não há indice para ser usado... (cadê o comando CREATE
INDEX ou ALTER TABLE ADD CONSTRAINT ?)
SE o índice é composto pelos campo A, B e C (nesta ordem) tanto faz se a
where está C,B,A, ou B,A, A,C,B... etc...
mas se não tiver o campo A ele NÃO vai usar índice.
Abraço
Em Qua, 2009-07-01 às 12:14 -0300, Sandro Souza escreveu:
> 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
> >
> ______________________________________________
> 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