Cita:
Empezado por Bretema
Muchas gracias por tu respuesta Guillotmarc, he puesto en marcha la solución que me propusiste y efectivamente el descenso en el tiempo de proceso ha sido apreciable, el tiempo de proceso de los registros se ha reducido a un tercio del anterior.
Saludos cordiales.
|
Sinceramente, 10 segundos (un tercio de los 30 segundos originales), me siguen pareciendo excesivos para solo 2.000 registros.
Parece que la base de datos tiene algún trigger para AFTER UPDATE en la tabla MOVIMIENTOS, y que la ejecución de ese trigger para cada registro ralentiza todo el proceso.
Deberías considerar desactivar los triggers que no sean imprescindibles, antes de lanzar el proceso. Una vez finalizado el proceso, ya puedes reactivar de nuevo los triggers.
ALTER TRIGGER MOVIMIENTOS_AU01 INACTIVE;
ALTER TRIGGER MOVIMIENTOS_AU02 INACTIVE;
EXECUTE PROCEDURE ACTUALIZAR_SALDO;
ALTER TRIGGER MOVIMIENTOS_AU01 ACTIVE;
ALTER TRIGGER MOVIMIENTOS_AU02 ACTIVE;
Saludos.