[firebase-br] lentidao

Matheus(GMAIL) matheus.jgs em gmail.com
Ter Jun 12 11:55:51 -03 2012


Sim, para esses dois casos:

>>        QyAuxiliar2.SQL.Add('Left join SE_FUN on
(SE_FUN.Codigo=SE_VDA.Vendedor)');
>>        QyAuxiliar2.SQL.Add('Left join SE_CLI on
(SE_CLI.Codigo=SE_VDA.Cliente)');

Tem muitos casos que é necessario pondera quanto ao uso de sub-select e left
join, eu não costumo mais usar tanto left join, a menos que eu traga muitos
campos, mas as vezes até trazendo 3 campos eu chego a usar o sub-select.


-----Original Message-----
From: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
On Behalf Of André Conrado
Sent: terça-feira, 12 de junho de 2012 11:49
To: FireBase
Subject: Re: [firebase-br] lentidao

Ueh!!! Essa eu não entendi. Usar Subselect nesse caso fica mais rápido
que left join?

Abçs

Em 12 de junho de 2012 08:58, Matheus(GMAIL) <matheus.jgs em gmail.com>
escreveu:
> Uma dica que usamos bastante aqui na empresa, como você está usando apenas
1 vez o funcionario e o cliente faça um subselect para pegar essa
informação,
> Existem casos que melhora até 90% o desempenho... E se tiver como colocar
o "SE_ITV" no from também melhoraria, mas só tirando os dois left join já
ajudaria muito.
>
> -----Original Message-----
> From: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
On Behalf Of Hélio Oliveira
> Sent: terça-feira, 12 de junho de 2012 08:44
> To: lista em firebase.com.br
> Subject: Re: [firebase-br] lentidao
>
> Bom dia Rubens!
>
> Facilita ai... pega apenas o script desta consulta e posta. O código
> como esta fica muito confuso.
>
>> Boa noite Amigos
>> tenho um banco de dados com 35 mil itens no cadastro de produtos
>> e leva quase 30 segundos para consultar os produtos – e nos lancamentos
da venda tenho quase 500 mil lancamentos de itens vendidos
>> e leva quase 1 minutos para consultar ou seja abrir o arquivo – ele
demora
>> tenho como servidor um core i7 com 6mg de memoria – placa de rede 1gb –
switch de 1gb
>> ja olhei as maquinas – e esta tudo ok, olhei os indices e os selects e
esta ok
>> como posso fazer eles abrirem mais rapidos pelo ibconsole e ibexpert eles
abrem rapido- mas quando uso o programa nao da para trabalhar
>> alguma sugestao – abaixo vai o select das vendas
>>
----------------------------------------------------------------------------
----------------------------------------
>> é o select do extrato do produto:
>>
----------------------------------------------------------------------------
----------------------------------------
>>       QyAuxiliar2.SQL.Add('Select ');
>>        QyAuxiliar2.SQL.Add('SE_ITV.Venda_Confirmada As Documento,');
>>        QyAuxiliar2.SQL.Add('SE_VDA.Vendedor,');
>>        QyAuxiliar2.SQL.Add('SE_FUN.Nome As NomeVendedor,');
>>        QyAuxiliar2.SQL.Add('SE_VDA.Data,');
>>        QyAuxiliar2.SQL.Add('SE_ITV.Cod_Produto As Produto,');
>>        QyAuxiliar2.SQL.Add('SE_ITV.Descricao,');
>>        QyAuxiliar2.SQL.Add('SE_ITV.Qtde As Quantidade,');
>>        QyAuxiliar2.SQL.Add('SE_ITV.Qtd_Devolvido As Devolvido,');
>>        QyAuxiliar2.SQL.Add('SE_ITV.Valor_Vendido,');
>>        QyAuxiliar2.SQL.Add('SE_ITV.Total,');
>>        QyAuxiliar2.SQL.Add('SE_VDA.Cliente,');
>> //      QyAuxiliar2.SQL.Add('SE_CLI.Nome As NomeCliente');
>>        QyAuxiliar2.SQL.Add('SE_VDA.Cliente_Nome As NomeCliente');
>>        QyAuxiliar2.SQL.Add('From SE_VDA');
>>        QyAuxiliar2.SQL.Add('Inner join SE_ITV on
(SE_ITV.Venda_Confirmada=SE_VDA.Codigo)');
>>        QyAuxiliar2.SQL.Add('Left join SE_FUN on
(SE_FUN.Codigo=SE_VDA.Vendedor)');
>>        QyAuxiliar2.SQL.Add('Left join SE_CLI on
(SE_CLI.Codigo=SE_VDA.Cliente)');
>>        QyAuxiliar2.SQL.Add('Where ((SE_ITV.Cod_Produto=:Produto) or
(SE_ITV.Cod_Produto=:Produto1))');
>>        QyAuxiliar2.SQL.Add('and (SE_VDA.Data Between :DataInicial and
:DataFinal)');
>>        QyAuxiliar2.SQL.Add('Order by SE_VDA.Data');
>>        QyAuxiliar2.Prepare;
>> ______________________________________________
>> 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
>>
>
>
> --
> []'s,
>
> Hélio Oliveira
> Analista de Sistemas
> Delphi Developer
> http://hpensador.blogspot.com/
>
>
>
>
> ______________________________________________
> 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
>
>
> ______________________________________________
> 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

______________________________________________
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





Mais detalhes sobre a lista de discussão lista