[firebase-br] Consulta UNION Lenta

eduardo eduardo em icontroller.com.br
Dom Abr 24 21:20:07 -03 2005


Tamos aqui é prá isso mesmo.

Gostei dos resultados e acho que este tipo de discussão é bastante 
importante para a lista.

Vivendo e aprendendo... = ... Quem está aprendendo está vivo

[]s Eduardo

Eliomar wrote:
> Olá Eduardo... é Vivendo e aprendendo... 
> Fiquei curioso com o que vc me disse e fiz alguns
> teste, ficou meio grande mais valeu a pena... 
> usando condição where codigo > 0 gasta se um 
> pouquinho mais de tempo mais usa se menos memória.
> e usando o union all bateu todos os recordes tempo 0ms. rsrsr
> 
> usando 
> select * from tb
> union
> select * from tb2
> ------ Performance info ------
> Prepare time = 15ms
> Execute time = 907ms
> Avg fetch time = 100,78 ms
> Current memory = 850.992
> Max memory = 991.100
> Memory buffers = 2.048
> Reads from disk to cache = 3.058
> Writes from cache to disk = 6
> Fetches from cache = 406.111
> 
> usando 
> select * from tb where codigo > 0
>  union
> select * from tb2 where codigo > 0
> ------ Performance info ------
> Prepare time = 15ms
> Execute time = 985ms
> Avg fetch time = 109,44 ms
> Current memory = 859.632
> Max memory = 925.332
> Memory buffers = 2.048
> Reads from disk to cache = 3.736
> Writes from cache to disk = 6
> Fetches from cache = 400.725
> 
> usando 
> select * from tb
> union all 
> select * from tb2
> ------ Performance info ------
> Prepare time = 0ms
> Execute time = 0ms
> Avg fetch time = 0,00 ms
> Current memory = 744.900
> Max memory = 869.632
> Memory buffers = 2.048
> Reads from disk to cache = 0
> Writes from cache to disk = 6
> Fetches from cache = 651
> 
> 
> Agradecido.
> Eliomar,
> ICQ - 167715482
> Soft-Data Softwares Administrativos
> hptt://www.promediconet.com.br
> 
> 
> ------------- Segue mensagem original! -------------
> 
> De: eduardo <eduardo em icontroller.com.br>
> Data: Sat, 23 Apr 2005 09:17:35 -0300
> Para: lista em firebase.com.br
> Assunto: Re: [firebase-br] Consulta UNION Lenta
> 
> 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
>>
> 
> 
> 
> ______________________________________________
> 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
> 
> 
> 
> 
> ______________________________________________
> 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