[firebase-br] MAX() com índice
Carlos H. Cantu
listas em warmboot.com.br
Seg Maio 27 19:50:22 -03 2013
Crie um indices descendente para o campo que vc está usando no MAX.
[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br
BD> Bom dia!
BD> Tenho a seguinte tabela:
BD> CREATE TABLE TB_BANDA_LARGA (
BD> ID_BANDA_LARGA INTEGER NOT NULL,
BD> DESCRICAO VARCHAR(50),
BD> VALOR_MENSAL NUMERIC(9,2),
BD> VALOR_ADESAO NUMERIC(9,2)
BD> );
BD> ALTER TABLE TB_BANDA_LARGA ADD CONSTRAINT PK_TB_BANDA_LARGA PRIMARY KEY
BD> (ID_BANDA_LARGA);
BD> Quando faço um select o Firebird não utiliza o índice:
BD> SELECT id_banda_larga
BD> from TB_BANDA_LARGA
BD> Somente quando mando ordenar pela chave primaria que o Firebird usa o
BD> índice:
BD> SELECT id_banda_larga
BD> from TB_BANDA_LARGA
BD> order by id_banda_larga
BD> O problema é que estou fazendo um select com o MAX e o Firebird não utiliza
BD> o plano de execução, existe alguma alternativa?
BD> select cast(coalesce(max(ID_BANDA_LARGA)+1,1) as integer)
BD> from TB_BANDA_LARGA
BD> WHERE ID_BANDA_LARGA IS NOT NULL
BD> At.,
BD> Bruno Lage
BD> lagix.com.br
BD> Skype: brunodila
BD> ______________________________________________
BD> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
BD> Para saber como gerenciar/excluir seu cadastro na lista, use:
BD> http://www.firebase.com.br/fb/artigo.php?id=1107
BD> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista