[firebase-br] MAX() com índice

Bruno Dias brunodila em gmail.com
Seg Maio 27 11:29:23 -03 2013


O campo ID_BANDA_LARGA é PK e o índice está como Ascendente.


Em 27 de maio de 2013 11:25, Ricardo Rodrigues <ricardopd em gmail.com>escreveu:

> 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:
>
> > Bom dia!
> >
> > Tenho a seguinte tabela:
> >
> > CREATE TABLE TB_BANDA_LARGA (
> >     ID_BANDA_LARGA  INTEGER NOT NULL,
> >     DESCRICAO       VARCHAR(50),
> >     VALOR_MENSAL    NUMERIC(9,2),
> >     VALOR_ADESAO    NUMERIC(9,2)
> > );
> >
> > ALTER TABLE TB_BANDA_LARGA ADD CONSTRAINT PK_TB_BANDA_LARGA PRIMARY KEY
> > (ID_BANDA_LARGA);
> >
> > Quando faço um select o Firebird não utiliza o índice:
> >
> > SELECT id_banda_larga
> > from TB_BANDA_LARGA
> >
> > Somente quando mando ordenar pela chave primaria que o Firebird usa o
> > índice:
> >
> >
> > SELECT id_banda_larga
> > from TB_BANDA_LARGA
> > order by id_banda_larga
> >
> > O problema é que estou fazendo um select com o MAX e o Firebird não
> utiliza
> > o plano de execução, existe alguma alternativa?
> >
> > select cast(coalesce(max(ID_BANDA_LARGA)+1,1) as integer)
> > from TB_BANDA_LARGA
> > WHERE ID_BANDA_LARGA IS NOT NULL
> >
> > At.,
> >
> > Bruno Lage
> > lagix.com.br
> > Skype: brunodila
> > ______________________________________________
> > 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
> >
> ______________________________________________
> 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