Sigo con el procedimiento aquel que conseguí rebajar de 8 horas a 20 minutos
con vuestra ayuda. Ahora me han cambiado criterios de cálculo y tengo un
nuevo problema.
Para los que no lo recuerden, el procedimiento hace cálculos en 5 tablas, en
función de un periodo dado. Antiguamente se extraían de 2 de esas 5 tablas,
las claves de los registros que había que calcular en las otras 3. Bueno,
pues ahora resulta que no es así, y hay que calcular en las 5 tablas
independientemente, para todas aquellos registros que tengan movimientos en
el periodo de tiempo a calcular.
La cuestión es que algunos registros pueden tener movimientos en unas tablas
sí y en otras no, con lo cual lo que hago es insertar los resultados de cada
una de las 5 tablas en una tabla temporal. Cada tabla temporal tiene 5
campos que forman la clave del registro, y luego entre 2 y 4 campos de
resultados de los cálculos.
El problema viene al tener que reunir todos esos datos para insertarlos en
la tabla real; ya que como puede darse el caso de estar en unas tablas sí y
en otras no, tengo que hacer un FULL OUTER JOIN de las 5 tablas temporales
(por los 5 campos clave).
El proceso ha pasado de 12 minutos a 31, y me pregunto si se os ocurre
alguna alternativa para evitar ese insert con los 4 FULL OUTER JOIN, porque
a mí no se me ocurre ninguna otra.
Un saludo
Leer las respuestas