[firebase-br] Campo com apenas 2 opções precisa de indice?
Douglas Tosi
douglasht em gmail.com
Qui Dez 3 10:32:34 -03 2009
2009/12/3 José Mauricio Barbisan Zottis <bzottis em ig.com.br>:
> pessoal, bom dia, estou com uma dúvida, talvez meia que primária, mas
> tenho uma pesquisa com várias situações (Where .....and .....) ela era bem
> rápida, mas coloquei mais uma opção, mas esta opção tem apenas duas
> situações = 'N' ou = 'S'
> neste caso, precisa de ´ndice?
O índice só será útil se a distribuição de valores não for homogênea e
você for pesquisar por um valor com alta seletividade. Explico: se 99%
dos registros usam S, os outros 1% usam N, e você sempre pesquisa pelo
N então o índice é válido. Se você pesquisar pelo S num caso desses, o
índice não ajuda nada, porque vai retornar 99% dos registros.
Agora se a distribuição é homogênea, mais ou menos metade pra cada
lado, aí o índice também não é útil.
Para qualquer busca que você fizer o índice retorna metade dos
registros da tabela. O custo de ler o índice pode ser maior que o
custo de ler a outra metade da tabela.
Pra entender porque o seu comando ficou lento depois de colocar mais
uma condição, poste aqui o comando e os planos de execução antes e
depois da alteração.
hth,
--
Douglas Tosi
www.sinatica.com
Mais detalhes sobre a lista de discussão lista