[firebase-br] Consulta UNION Lenta
eduardo
eduardo em icontroller.com.br
Sáb Abr 23 09:17:35 -03 2005
Oi Eliomar
Desculpe, mas acho que não é bem assim.
Se você quer todos os registros de uma tabela,
enganar o Servidor que existe um critério,
certamente acarretará em queda de performance,
uma vez que a cada Row ele, obrigatoriamente, vai
testar o WHERE.
A busca natural, sem índices, neste caso seria a
mais apropriada.
No caso em questão:
O mais provável é que, por não haver critério,
a quantidade de linhas retornada é muito grande.
Observe que no UNION, o Servidor terá que trazer
todas as linhas da TB1, depois buscar todas as da TB2
comparando a cada linha se não existe uma igual.
Dependendo do que se quer, se não houver possibilidade
de linhas iguais nas duas tabelas, será melhor utilizar
UNION ALL. Desta forma o Servidor não teria o trabalho
desnecessário de comparar se a linha já existe no ResultSet.
Em ambos os casos, é necessário verificar o componente
utilizado, pois trazer dados muito volumosos em um
xClientDataSet sem PacketRecords também degrada muito
a performance, uma vez que todo o ResultSet tem que
transitar na rede e ser armazenado na memória de uma só vez.
Espero ter contribuído
[]s Eduardo
Eliomar wrote:
> Você não usou nenhuma condição isso faz
> com que o banco use idx natutal o que faz
> ficar lento, mesmo que queira que aparece
> todos vc tem que usar uma condição por ex:
>
> select * from tb1 where codigo > 0
>
> Entendeu?
>
> Agradecido.
> Eliomar,
> ICQ - 167715482
> Soft-Data Softwares Administrativos
> hptt://www.promediconet.com.br
>
>
> ------------- Segue mensagem original! -------------
>
> De: "Silenus Systems LTDA" <silenus em silenus.com.br>
> Data: Fri, 22 Apr 2005 16:53:57 -0400
> Para: lista em firebase.com.br
> Assunto: [firebase-br] Consulta UNION Lenta
>
>
> Ex
>
> Select ID, DESCRICAO FROM TB1
> UNION
> Select ID, DESCRICAO FROM TB2
>
> Alguem sabe por que isso ocorre no Firebird 1.5.2?? Ou sugere algo
> diferente.
>
>
>
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://search.gmane.org/search.php?group=firebase
>
Mais detalhes sobre a lista de discussão lista