[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