 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Ter Mai 07, 2019 2:22 pm Assunto: Demora na importacao de tabelas inteiras |
|
|
Boa tarde,
Criei um importador de dados de tabelas inteiras de arquivos DBF (clipper) para um BD SQL Server.
O grande problema é que essa importação demora bastante, visto que as tabelas DBF são imensas (tem tabela com quase 900 mil registros).
O grande motivo da demora é que, atualmente, faço um loop na tabela de origem e vou inserindo cada registro, individualmente, na tabela de destino.
Há alguma maneira de tornar mais rápido este processo? _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qua Mai 08, 2019 9:24 am Assunto: |
|
|
eu uso cachedUpdates na query, e qdo insere 100 registros, dou um applyUpdates
isso melhorou bastante a velocidade. faz o teste com 100, 50, 200 registros por vez
fica mais ou menos assim:
| Código: | Query1.Close;
Query1.sql.Text := 'SELECT * FROM tabela WHERE 1 = 0';
Query1.Open;
Table1.First;
while not Table1.Eof do
begin
query1.append;
Query1.FieldByname('campo1').Value := Table1.FieldByname('campo1').Value;
Query1.FieldByname('campo2').Value := Table1.FieldByname('campo2').Value;
Query1.FieldByname('campox').Value := Table1.FieldByname('campox').Value;
Query1.Post;
Table1.Next;
if (Table1.Eof) or (Query1.RecordCount = 100) then
begin
Query1.ApplyUpdates;
Query1.Close;
Query1.Open;
end;
end; |
_________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|