Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hintz

DBF x FIREBIRD

Recommended Posts

Tenho duas tabelas em DBF. TDados e TItens.

TDados tem +/- 120.000 itens

TItens tem +/- 300.000 itens

Fiz a conversão (rotina propria) DBF para FDB.

a Tabela TItens esta relacionada a Tabela TDados.

no Clipper abria as duas tabelas bem rapido, no

Firebird esta demorando bastante (bem mais demorado que no

DBF).

 

Ex.:

// firebird - esta rotina demora bastante.

with DMArq do

begin

zqTrans.SQL.Clear;

zqTrans.SQL.Add('Select MAX(PedNum) as ULTIMO From Dados');

zqTrans.Open; // aqui demora bastante................

sCodigo := zqTrans.FieldByName('Ultimo').asString;

try

sCodigo := FormatFloat('000000000000000', StrToFloat(sCodigo) + 1);

except

sCodigo := '1';

end;

end;

 

// dbf - esta rotina é bem rapida

with DMArqSce.qItemCod do

begin

Close;

DataBaseName := Drive_IniR + '\Sistema\Estoque\' + Nr_Ite;

Sql.Clear;

Sql.Add('Select PedNum from TDados order by PedNum');

 

Open;

Last;

 

sCod := FieldByName('IteCod').asString;

sCod := Copy(FormatFloat('0000000000', StF(sCod)), 1, 8);

cCod := StrToFloat(sCod);

OCpf := IntToStr(Trunc(ccod) + 1);

CodBar := FormatFloat('00000000', cCod + 1);

ocpf := IntToStr(StrToInt(Calc_dig(OCpf)));

 

result := oCpf; // qItemCod.FieldByName('IteCod').asString;

 

Close;

end;

 

Assim todas as consultas (abrindo toda a tabela - Open) como filtros, no firebird, são bem mais demorados que no DBF.

Isto é normal?

o Firebird não deveria ser mais rapido que o DBF?

o que eu posso fazer para melhorar o Desempenho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.