[firebase-br] Dúvidas sobre índices

Cláudio Prudente (O2 Tecnologia) claudio em o2tecnologia.com.br
Seg Jun 20 15:50:25 -03 2016


Obrigado pela resposta Marcelo.

Essa parte eu entendi.
Se eu fizer o where de um campo somente eu crio o índice só desse campo.

E no caso de eu utilizar 2 campos no where? No exemplo abaixo eu já 
teria o índice pelo campo nome mas o where utiliza nome e cidade.
Como eu já tenho o índice pelo nome eu crio mais um pela cidade ou é 
melhor criar um índice composto por nome e cidade?

Abraço,
Cláudio



Em 20/06/2016 12:49, Marcelo escreveu:
> 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
>>
>
>
> ______________________________________________
> 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