Cuando se utiliza una estrategia de UPDATE o UPDATE/INSERT en una tabla con varios millones de registros i los registros que queremos actualizar no superan el 20%/30% del total, Cognos Data Manager puede tardar horas.
El motivo es que primero realiza una lectura de la tabla destino ENTERA. Desde el primer registro hasta el último. Coloca los registros en memoria, los actualiza y posteriormente realiza el UPDATE en disco.
Este sistema es rápido para tablas de hechos con pocos campos y no muchos registros. Pero cuando la tabla es grande, no es productivo aunque actualicemos usando una clave primaria.
La solución pasa por usar un parámetro presente en las propiedades de la “Table Delivery” llamado “Key cache SELECT restriction”.
Mediante esta propiedad le indicamos a Data Manager los registros que tiene que cargar en memoria.
Por ejemplo:
Actualizamos un determinado campo de la tabla de STOCKS. En lugar de cargar todos los registros, podemos indicarle que solamente prepare la actualización de los registros correspondientes al mes pasado:
Obviamente, en la tabla que ha de actualizarse debe existir el campo “FECHA”.
Con esto, en lugar de cargar, por ejemplo, 60 millones de registros, cargaremos tan solo los que correspondan al mes filtrado.
Post relacionados: