Programa de utilidad de Limpieza de base de datos

El programa de utilidad de Limpieza de base de datos le proporciona la posibilidad de eliminar objetos de la base de datos. Se recomienda ejecutar la limpieza de base de datos periódicamente, especialmente si cambia mucho la información en la base de datos e incluye tablas o filas que ya no se utilizan.

Cuando el programa de utilidad de Limpieza de base de datos suprime un objeto, los registros en las tablas del objeto se suprimen para conservar la integridad de referencia de la base de datos. El programa de utilidad de Limpieza de base de datos suprime los registros de las tabla hijo que se basan en la regla de supresión de la definición de integridad de referencia del esquema de base de datos. Su administrador de base de datos puede establecer la norma de supresión en on delete cascade, on delete set null o on delete restrict. Si añade tablas nuevas, asegúrese de que la integridad de referencia y la norma de supresión estén definidas correctamente. De lo contrario, el programa de utilidad de Limpieza de base de datos no podrá trabajar con las tablas nuevas.

Consejo:
  • Si está migrando desde una versión ya existente de HCL Commerce, puede ejecutar el programa de utilidad de Limpieza de base de datos después de la migración. Recuerde que debe evaluar los tipos de datos en el sistema y cómo afectan al mantenimiento de la base de datos. Normalmente, los datos de usuarios y de pedidos pueden ser bastante grandes, y ello hace que las tablas de base de datos sean de gran tamaño. Cuando efectúa la limpieza de la base de datos, el proceso lleva bastante tiempo ya que puede llenar los archivos de registro de transacción de base de datos. Este proceso también puede bloquear potencialmente las tablas de base de datos mientras se ejecuta la tienda.
  • Si ejecuta el programa de utilidad de Limpieza de base en un entorno de transición, ejecute el programa de utilidad únicamente en el objeto STAGLOG. La base de datos lista para producción es diferente de la base de datos de producción. La base de datos lista para producción sólo tiene datos de configuración sin datos de operación. La supresión de datos de configuración puede producir una supresión en cascada en los datos de operación. Cuando el programa de utilidad stagingprop propaga la supresión a la base de datos de producción, esta supresión puede producir una supresión en cascada en los datos de operación (que desea conservar). Para obtener más información, consulte Ejecución del programa de utilidad de limpieza de base de datos. Para limpiar sólo los datos de configuración, ejecute el programa de utilidad de Limpieza de base en la base de datos de producción.
  • DB2En función de la cantidad de limpieza que es necesaria para la base de datos, contemple la posibilidad de ejecutar el programa de utilidad DB2 REORGCHK antes de ejecutar el programa de utilidad para mejorar el rendimiento durante la limpieza.
  • Para mejorar el rendimiento, asegúrese de que la limpieza de base se realiza en la tabla USRTRAFFIC para las tablas MEMBER y ADDRESS de la base de datos de HCL Commerce.

Modo fuera de línea

La modalidad fuera de línea del programa de utilidad de Limpieza de base de datos reduce el impacto sobre el rendimiento derivado de eliminar objetos que se almacenan en una jerarquía de tablas profunda o ampliamente anidadas.

Cuando el programa de utilidad se ejecuta en la modalidad en línea predeterminada, el programa de utilidad utiliza operaciones de supresión en cascada para eliminar registros. El programa de utilidad suprime los objetos en la tabla raíz y, a continuación, utiliza las operaciones de supresión en cascada para eliminar objetos en tablas hijo en una jerarquía de tablas. Este proceso puede llevar bastante tiempo y afectar al rendimiento de la base de datos cuando el programa de utilidad está suprimiendo muchos registros para un objeto a través de una jerarquía anidada amplia y profundamente. Por ejemplo,cuando el programa de utilidad está suprimiendo registros de usuario, que puede sobrepasar potencialmente millones de registros.

En cambio, cuando el programa de utilidad se ejecuta en la modalidad fuera de línea, el programa de utilidad no utiliza operaciones de supresión en cascada. En cambio, el programa de utilidad utiliza sentencias de supresión SQL para cada tabla en la jerarquía para eliminar explícitamente objetos de cada tabla. Cuando el programa de utilidad se ejecuta en la modalidad fuera de línea, el programa de utilidad comprueba primero la jerarquía de tablas para identificar las tablas y ramificaciones de la jerarquía que contienen los registros para eliminar. De forma predeterminada, el programa de utilidad sólo comprueba los primeros dos niveles por debajo de la tabla raíz dentro de una jerarquía. Por ejemplo, en la jerarquía de ejemplo siguiente, el programa de utilidad comprueba la tabla raíz, T1, y cualquier tabla en el primer, 1 nivel y el segundo nivel de jerarquía, 2.

Ejemplo de registros que se van a limpiar.
Después de que el programa de utilidad finaliza la comprobación de los niveles de jerarquía, el programa de utilidad reduce la jerarquía excluyendo las tablas que no incluyen registros a eliminar. Cualquier tabla hijo de una tabla excluida también se excluye a menos que la tabla sea hijo de una tabla que está incluida en la jerarquía reducida. Por ejemplo, las tablas, T11 y T13 en esta jerarquía de ejemplo permanecen en la jerarquía reducida, aunque las tablas no incluyan registros a eliminar. La imagen siguiente muestra cómo el programa de utilidad puede reducir la jerarquía de ejemplo excluyendo las tablas que no tienen registros para eliminar y las tablas hijo de estas tablas.

Ejemplo de jerarquía de tablas de base de datos que permanecen después de que se excluyan tablas.

Con la jerarquía de tablas inicial marcada y reducida en su ámbito, el programa de utilidad agrupa las tablas restantes en pasos, que se basan en el nivel de jerarquía de las tablas. Cada pase puede incluir varias tablas que pertenecen al mismo nivel de jerarquía. No hay ningún límite en el número de tablas que pueden incluirse en una agrupación de pasos. Si una tabla incluye restricciones foráneas a varias tablas, la tabla se incluye en varios pasos, uno para cada restricción.

Por ejemplo, la imagen siguiente representa las agrupaciones de pasos para las tablas restantes en la jerarquía de ejemplo anterior. En la jerarquía de ejemplo, la tabla T6 incluye restricciones foráneas a varias tablas padre. El programa de utilidad agrupa la tabla T6 en dos pasos para el mismo nivel de jerarquía. Un paso para la restricción con T2 y el otro paso para la restricción con T3.

Agrupaciones de tablas de ejemplo para eliminar registros

Con las tablas agrupadas en pasos, el programa de utilidad genera las sentencias delete SQL que se ejecutarán en cada tabla en cada paso. Sólo se suprimen los registros que coinciden con la sentencia SQL. El programa de utilidad utiliza un método ascendente para ejecutar las sentencias SQL en las tablas en cada paso para una jerarquía. El programa de utilidad empieza limpiando cada paso ejecutando las sentencias SQL simultáneamente en todas las tablas en los pasos para el nivel más bajo de la jerarquía. A continuación, el programa de utilidad ejecuta las sentencias SQL en los pasos en cada nivel superior de la jerarquía antes de que el programa de utilidad ejecute la sentencia SQL para limpiar por último la tabla raíz.

Para ejecutar el programa de utilidad de limpieza de base de datos en la modalidad fuera de línea, debe incluir el parámetro offlinemode en el mandato del programa de utilidad establecido en yes. Para obtener más información, consulte Script de mandatos del programa de utilidad de limpieza de base de datos.