Ver Mensaje Individual
  #11  
Antiguo 28-10-2022
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por webmasterplc Ver Mensaje
el proceso tarda demasiado y mientras lo hace me cuelga la maquina y no se por donde va
Bueno, igual que los demás compañeros falta información, pero estos puntos son generales en cualquier proceso de carga de datos (ELT).

Asi que:

1. Cuanto es "demasiado"?
2. Para que no se "cuelgue" la app lo pones dentro de un Thread o en un proceso aparte y vas comunicando el progreso
3. Para "saber por donde va" es critico que tengas integrado un Log con el resultado de cada paso.
4. Los procesos de ELT se hacen en batch. Algo asi como "cargar cada 500 registros"

Si tienes una base de datos no muy moderna o limitada (que supongo es el caso con dbisam), un método que uso, ya que me toca integrar con muchas fuentes de datos, es cargar los IDs de lo que quiero checar en un hasmap y usarlo para comparar de forma rápida. Algo asi como (pseudo-codigo):

Código Delphi [-]

mi_indice := SELECT id FROM db1.Customer

for row in SELECT * FROM db2.Customer 
begin
   if row.id in mi_indice 
   begin
   // Existe
  end else begin
  //No existe
  end;
end

Asi debería ser muy rapido, mas que hacer un select en cada ciclo.
__________________
El malabarista.
Responder Con Cita