Ir para conteúdo
Fórum CódigoFonte.net

tixa

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

  1. tixa

    INICIANTE. DBF X FIREBIRD

    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?
×
×
  • Criar Novo...