[firebase-br] lentidao

rubens rubens em solucaoempresarial.net
Seg Jun 11 23:30:22 -03 2012


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;



Mais detalhes sobre a lista de discussão lista