[firebase-br] lentidao

André Conrado acf em andreconrado.net
Ter Jun 12 11:49:07 -03 2012


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




Mais detalhes sobre a lista de discussão lista