Cita:
Empezado por webmasterplc
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
end else begin
end;
end
Asi debería ser muy rapido, mas que hacer un select en cada ciclo.