Utilitaire de nettoyage de la base de données
L'utilitaire de nettoyage de la base de données vous permet de supprimer des objets de la base de données. Il est recommandé d'exécuter le nettoyage de base de données régulièrement, en particulier si de nombreuses informations changent dans votre base de données et votre base de données comprend des tables ou des lignes inutilisées.
Lorsque l'utilitaire de nettoyage de la base de données supprime un objet, les enregistrements dans les tables correspondant aux objets sont supprimés pour conserver l'intégrité référentielle de la base de données. L'utilitaire de nettoyage de la base de données supprime des enregistrements dans les tables enfant en fonction de la règle de suppression de la définition d'intégrité référentielle située dans le schéma de base de données. Votre administrateur de base de données peut définir la règle de suppression sur on delete cascade , on delete set null ou on delete restrict. Si vous ajoutez de nouvelles tables, vérifiez que l'intégrité référentielle et la règle de suppression sont correctement définies. Sinon, l'utilitaire de nettoyage de la base de données ne pourra pas utiliser vos nouvelles tables.
- Si vous effectuez une migration depuis une version existante de HCL Commerce, vous pouvez lancer l'utilitaire de nettoyage de la base de données après la migration. N'oubliez pas d'évaluer les types de données présents sur votre système et leur impact sur la maintenance de la base de données. Généralement, les données sur les utilisateurs et les commandes peuvent être volumineuses et générer des tables de base de données de grande taille. Le nettoyage de la base de données peut prendre du temps car il peut saturer vos journaux de transactions sur la base de données. Le processus peut également verrouiller potentiellement les tables de base de données alors que votre magasin est en cours d'exécution.
- Si vous exécutez l'utilitaire de nettoyage de base de données dans un environnement de transfert, exécutez l'utilitaire uniquement sur l'objet STAGLOG. La base de données prête pour la production est différente de la base de données de production. En effet, elle contient seulement des données de configuration sans données d'exploitation. La suppression de données de configuration peut provoquer une suppression en cascade des données d'exploitation. Lorsque l'utilitaire stagingprop propage la suppression à la base de données de production, cela risque de provoquer une suppression en cascade des données d'exploitation (que vous souhaitez conserver). Pour plus d'informations, voir Exécution de l'utilitaire de nettoyage de base de données dans un environnement de transfert. Pour nettoyer uniquement des données de configuration, exécutez l'utilitaire de nettoyage de la base de données sur la base de données de production.
Selon l'intensité du nettoyage requis pour votre base de données, envisagez de lancer l'utilitaire DB2 REORGCHK avant d'exécuter l'utilitaire afin d'améliorer les performances lors de ce nettoyage.- Pour obtenir des performances optimales, vérifiez que le nettoyage de la base de données est effectué dans la table USRTRAFFIC pour les tables MEMBER et ADDRESS sur la base de données HCL Commerce.
Mode hors ligne
Le mode hors ligne de l'utilitaire de nettoyage de la base de données réduit l'impact sur les performances de la suppression de nombreux objets qui sont stockés dans une hiérarchie de table profondément et largement imbriquée.
Lorsque l'utilitaire fonctionne en mode en ligne par défaut, l'utilitaire utilise des opérations de suppression en cascade pour supprimer des enregistrements. L'utilitaire supprime des objets de la table racine et utilise ensuite les opérations de suppression en cascade pour supprimer des objets des tables enfant dans une hiérarchie de table. Ce processus peut prendre du temps et affecter les performances de base de données lorsque l'utilitaire supprime de nombreux enregistrements pour un objet à travers une hiérarchie profondément et largement imbriquée. Par exemple, lorsque l'utilitaire supprime des enregistrements d'utilisateurs, ce qui peut potentiellement dépasser plusieurs millions d'enregistrements.


Avec la hiérarchie de table initiale vérifiée et réduite dans sa portée, l'utilitaire transfère certaines tables dans des groupes, qui sont basés sur le niveau de la hiérarchie des tables. Chaque transmission peut inclure plusieurs tables qui appartiennent au même niveau de la hiérarchie. Il n'y a pas de limite au nombre de tables qui peuvent être incluses dans une transmission. Si une table contient des contraintes externes sur plusieurs tables, la table est incluse dans plusieurs transmissions, une pour chaque contrainte.

Avec les tables regroupées dans les transmissions, l'utilitaire génère des instructions SQL de suppression à exécuter sur chaque table dans chaque transmission. Seuls les enregistrements qui correspondent à l'instruction SQL sont supprimés. L'utilitaire utilise une approche ascendante pour exécuter les instructions SQL sur les tables dans chacune transmission pour une hiérarchie. L'utilitaire commence le nettoyage de chaque transmission en exécutant les instructions SQL simultanément sur toutes les tables dans les transmissions pour le niveau le plus bas de la hiérarchie. L'utilitaire exécute ensuite les instructions SQL sur les transmissions dans chaque niveau supérieur de la hiérarchie pour que l'utilitaire exécute l'instruction SQL pour nettoyer la table racine en dernier.
Pour exécuter l'utilitaire de nettoyage de la base de données en mode hors ligne, vous devez inclure le paramètre offlinemode dans l'utilitaire de commande défini sur yes. Pour plus d'informations, voir Script de commande d'utilitaire de nettoyage de base de données.