Selecao DevMedia QUERO SER PRIME

Fórum Otimizaçao de consulta em ADO #325222

12/07/2006

0

Estou cm um problema, pois tenho que fazer uma consulta num componente ADOQuery, porem esta mto lento! Gostaria de saber quais configuracaoes poderia fazer no componente pra melhorar a perfomance da consulta.

Obrigado!


Curynga

Curynga

Responder

Posts

12/07/2006

Bon Jovi

Depende. Quer fazer o que? Vai usar data controls ou apenas fazer loop?

Se quer apenas percorrer os registros de forma unidirecional, use o tipo de cursor ctOpenForwardOnly (necessario Location = clServer). Ex.:

  ADODataSet1.Close;
  ADODataSet1.CursorLocation := clUseServer;
  ADODataSet1.CursorType := ctOpenForwardOnly;
  ADODataSet1.LockType := ltReadOnly;
  ADODataSet1.ParamCheck := False; //só no caso de nao ter parametros
  ADODataSet1.DisableControls;
  ADODataSet1.CommandText := ´select CategoryID, CategoryName from Categories´;
  ADODataSet1.Open;
  try
    while not ADODataSet1.Eof do
    begin
      ListBox1.Items.Add(ADODataSet1CategoryID.AsString);
      ADODataSet1.Next;
    end;
  finally
    ADODataSet1.Close;
  end;


Qdo se usa CursorLocation Server é recomendável sempre fechar assim que terminado o uso interno, sem deixar aberto pro usuário.


Responder

Gostei + 0

12/07/2006

Bon Jovi

E tb poste a consulta.


Responder

Gostei + 0

13/07/2006

Curynga

SELECT ld.cod_ban, ld.cod_age, ld.num_cdj, ld.num_dep, ld.dat_lan,
SUM(ld.vr_lan) as Rendimento
FROM CDJ_DEPOSITO d
JOIN CDJ_LANCAMENTO_DEPOSITO ld ON
(ld.cod_ban = d.cod_ban
AND ld.cod_age = d.cod_age
AND ld.num_cdj = d.num_cdj
AND ld.num_dep = d.num_dep)
WHERE d.cod_ban_ori = FloatToSQL(pCodBan)
AND d.cod_age_ori = FloatToSQL(pCodAge)
AND d.num_cdj_ori = FloatToSQL(pNumCdj)
AND d.num_dep_ori = FloatToSQL(pNumDep)
AND ld.cod_his_lan_dj IN (4,5)
AND ld.dat_lan = DateToSQL(pDatLan)
GROUP BY ld.cod_ban, ld.cod_age, ld.num_cdj, ld.num_dep, ld.dat_lan


A consulta é essa que estou fazendo, e estou passando os parametros daquela forma para evitar o proprio parametro do componente.
Não vi alteraçoes que poderiam ser feitas e já alterei juntamente com o DBA alguns indices.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar