[firebase-br] Dúvidas sobre índices

Marcelo marcelo em magnosystem.com.br
Seg Jun 20 12:49:36 -03 2016


O firebird não usa índices quando a pesquisa é "CONTENDO O TEXTO" pois a 
ocorrência do texto pode estar em qualquer parte do campo e portanto o 
firebird tem que varrer todos os registros. Já quando a pesquisa é 
"INICIANDO COM O TEXTO" o firebird usa o índice correspondente ao campo 
pois ele só vai pesquisar na parte ordenada que o texto pode estar.


Em 20/06/2016 11:44, Cláudio Prudente (O2 Tecnologia) escreveu:
> Obrigado pela resposta Cantu. Não sabia que não cabiam índices para LIKE.
>
> Então mudando um pouco a pergunta mas mantendo o mesmo foco. Se ao 
> invés de "LIKE" fosse utilizado "="?
>
>
> Em 20/06/2016 11:38, Carlos H. Cantu escreveu:
>> O Firebird não usa índices em pesquisas do tipo LIKE '%algumacoisa%'
>>
>> []s
>> Carlos H. Cantu
>> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
>> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>>
>> CP> Bom dia.
>>
>> CP> Eu vejo mensagens na lista com bancos de dados de 50gb, 400gb e 
>> até mais
>> CP> e um dos meus clientes com um banco por volta de 20gb está bem 
>> lento.
>> CP> Com certeza posso melhorar a performance com índices bem criados.
>>
>> CP> Eu li muita coisa na internet sobre isso e fiquei com algumas 
>> dúvidas.
>>
>> CP> Vamos supor 2 selects.
>> CP> 1 - Select Nome, Cidade, Estado From Clientes
>> CP>       where ( Nome like '%qualquer coisa%' )
>>
>> CP> Para esse exemplo acima eu criando um índice somente para o campo 
>> Nome é
>> CP> o ideal correto?
>>
>> CP> Agora ao segundo caso.
>> CP> 2 - Select Nome, Cidade, Estado From Clientes
>> CP>       where ( Nome like '%qualquer coisa' ) and ( Cidade = 'São 
>> Paulo' )
>>
>> CP> Para esse exemplo eu já teria o índice por nome. Pelo que entendi 
>> dos
>> CP> índices do firebird se eu tiver um índice para Cidade criado o 
>> plan iria
>> CP> utilizar os 2 índices criados para me dar o retorno.
>> CP> O melhor a se fazer é criar somente o índice para Cidade ou mesmo 
>> eu já
>> CP> tendo um índice para o Nome eu criaria um outro composto por Nome 
>> e Cidade?
>>
>> CP> Nesse caso eu não usei order by. Estou pensando somente em 
>> índices para
>> CP> where. Seria interessante criar índices para a ordenação?
>>
>> CP> Obrigado pessoal.
>>
>> CP> Cláudio
>>
>> CP> ______________________________________________
>> CP> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> CP> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> CP> http://www.firebase.com.br/fb/artigo.php?id=1107
>> CP> Para consultar mensagens antigas:
>> CP> http://www.firebase.com.br/pesquisa_lista.html
>>
>>
>> ______________________________________________
>> 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://www.firebase.com.br/pesquisa_lista.html
>>
>
>
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html
>





Mais detalhes sobre a lista de discussão lista