[firebase-br] Dúvidas sobre índices

Marcelo marcelo em magnosystem.com.br
Seg Jun 20 17:05:46 -03 2016


Neste caso, eu faria o teste com o índice composto e com os índices 
separados, observando as estatísticas de tempo e o plano gerado pelo 
firebird.


Em 20/06/2016 15:50, Cláudio Prudente (O2 Tecnologia) escreveu:
> 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
>>
>
>
> ______________________________________________
> 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