Hola amigos del club.
Utilizando Delphi 7 y Oracle me ocurrió la siguiente interrogante cuando realizaba un proceso de importacion de archivo ascii a una tabla temporal plana, es decir, lo único que tiene la tabla es un campo 'renglon' de tipo varchar2 sin indices ni nada de nada.
Para el algoritmo utilizo un timer para actualizar un reloj y un thread que es el encargado de recorrer el ascii y cada cierta cantidad de renglones enviarlo a oracle.
El programa es +/- asi:
Código:
AbrirArchivo(txt);
dmDataModule.cdsArchivo.DisableControls;
dmDataModule.cdsArchivo.Open;
nrolinea := 0;
while (not eof(txt)) and (not terminar) do
begin
nrolinea := nrolinea + 1;
readln(txt, line);
dmDataModule.cdsArchivo.Insert;
dmDataModule.cdsArchivoRENGLON.AsString := line;
dmDataModule.cdsArchivo.Post;
if (nrolinea mod 1500) = 0 then
dmDataModule.cdsArchivo.ApplyUpdates(-1);
end;
dmDataModule.cdsArchivo.Close;
Cuando importo archivos chicos, por ej. de 4MB el programa funciona genial, lo realiza bastante rapido.
Ahora bien, cuando intento importar un archivo de 180 MB se arrastra cual tortuga caminando en barro. Lo extraño es que arranca joya pero cada vez le cuesta mas completar los porcentajes, por ejemplo, del 1% al 2% lo hace en 1 min. el 9% al 10% lo hace en 2min. y asi va perdiendo en performance de forma bastante alarmante.
¿ Alguien tiene idea de a que se puede deber esto ?
Desde ya muchas gracias !