[firebase-br] MAX() com índice

Bruno Dias brunodila em gmail.com
Seg Maio 27 11:39:58 -03 2013


Por exemplo, quando troco para este select o Firebird utiliza o indice

select cast(coalesce(max(ID_BANDA_LARGA)+1,1) as integer)
from TB_BANDA_LARGA
WHERE ID_BANDA_LARGA > 0


Em 27 de maio de 2013 11:36, Bruno Dias <brunodila em gmail.com> escreveu:

> Quando fiz um select simples SELECT * from TB_BANDA_LARGA, o Firebird não
> utiliza índice, somente quando mando ordenar pelo campo que o Firebird
> utiliza o indice:
>
> SELECT * from TB_BANDA_LARGA
> order by id_banda_larga
>
> Obs.: Estou utilizando o Firebird 2.5.1
>
>
> Em 27 de maio de 2013 11:29, Frederico Godoi <frederico.godoi em gmail.com>escreveu:
>
> Acho que quando usa CAST ele não usa índice.
>> Faça o teste , por favor.
>>
>> Frederico
>>
>>
>> 2013/5/27 Ricardo Rodrigues <ricardopd em gmail.com>
>>
>> > Se não me falha a memória é indicado cria um índica ascendente para
>> esses
>> > tipos de select para uma melhor performance.
>> >
>> > select cast(coalesce(max(ID_BANDA_LARGA)+1,1) as integer)
>> > from TB_BANDA_LARGA
>> > WHERE ID_BANDA_LARGA IS NOT NULL
>> >
>> >
>> > Em 27 de maio de 2013 11:20, Bruno Dias <brunodila em gmail.com> escreveu:
>> >
>> >
>> >
>> ______________________________________________
>> 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