[firebase-br] Select no Firebird 2.0 Trava

Eduardo Pombo eduardo em embras.net
Sex Maio 21 17:47:50 -03 2010


acho q o problema esta na metodo utilizado na construcao da query,
acredito q isso posso ajudar:

select first 1 a.codigo+1 as codigo from  CLIENTE a
left join CLIENTE b on (b.codigo = a.codigo + 1)
where b.codigo is null

o problema no metodo atual eh q para cada registro da tabela CLIENTE
ele vai executar novamente o subselect do IN e ai no caso de 3000
registro vira 3000 x 3000 = 9.000.000 de pesquisas considerando ainda
q vc nao vai ter um indice por (CODIGO+1), imagino que 9.000.000  de
pesquisas sem indice vai demorar um bocado.

Espero ter ajudado.



Em 21 de maio de 2010 17:05, Douglas Fabiano Specht
<douglasfabiano em gmail.com> escreveu:
> Boa tarde Pessoal
> estou com um grande problema no firebird 2.0, sendo que não ocorre no
> 1.5 ou 1.03.
> tenho um select que me recupera o primeiro codigo disponivel de uma tabela:
>
> Select Min(CODIGO) From  CLIENTE Where CODIGO> 0 AND (CODIGO+ 1) Not
> In (Select CODIGO From CLIENTE)
>
> Na minha tabela de CLIENTES qdo tenho acima de 3000 registros o
> firebird trava e nao consegue processar.
>
> alguem tem alguma dica?
>
>
> abraços e obrigado
>
> ______________________________________________
> 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
>



-- 

Atenciosamente

José Eduardo Pombo de Barros
Gerente de Manutenção de Sistemas




Mais detalhes sobre a lista de discussão lista