[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