Avec le temps, la taille de la base de données augmente, en grande partie à cause de l’accumulation d’enregistrements inutiles, tels que l’historique de workflow. Cet article vous guide sur la manière de supprimer cet historique pour optimiser la performance de votre base de données en supprimant les enregistrements obsolètes et inactifs.
Pourquoi supprimer l’historique de workflow ?
La suppression de l’historique de workflow est essentielle pour plusieurs raisons :
- Réduction de la taille de la base de données : Diminue le volume des données stockées, ce qui peut réduire les coûts de stockage.
- Amélioration des performances : Accélère les requêtes en allégeant le volume de données à traiter.
- Gestion plus facile : Simplifie les opérations de maintenance sur la base de données.
Comment supprimer l’historique de workflow ?
Pour supprimer l’historique de workflow, suivez les étapes ci-dessous en exécutant les scripts SQL fournis. Ces scripts supprimeront les enregistrements inactifs et inutiles dans différentes tables liées aux workflows.
1. Suppression des transactions de workflow
Le script suivant supprime les enregistrements dans la table wftransaction qui ne sont pas associés à des workflows actifs depuis plus d’un mois et qui n’ont pas de mémo associé.
DELETE FROM wftransaction
WHERE wfid NOT IN (
SELECT wfid
FROM wfinstance
WHERE active = 1
)
AND transdate <= (CURRENT TIMESTAMP - 1 MONTH)
AND memo IS NULL;
COMMIT;
2. Suppression des piles d’appels de workflow
Ce script supprime les enregistrements de la table wfcallstack associés à des workflows inactifs depuis plus d’un mois et sans mémo.
DELETE FROM wfcallstack
WHERE wfid IN (
SELECT wt.wfid
FROM wftransaction wt, wfinstance wi
WHERE wt.wfid = wi.wfid
AND wi.active = 0
AND transdate <= (CURRENT TIMESTAMP - 1 MONTH)
AND memo IS NULL
);
COMMIT;
3. Suppression des affectations de workflow
Le script ci-dessous élimine les enregistrements de la table wfassignment liés aux workflows inactifs depuis plus d’un mois sans mémo.
DELETE FROM wfassignment
WHERE wfid IN (
SELECT wt.wfid
FROM wftransaction wt, wfinstance wi
WHERE wt.wfid = wi.wfid
AND wi.active = 0
AND transdate <= (CURRENT TIMESTAMP - 1 MONTH)
AND memo IS NULL
);
COMMIT;
4. Suppression des instances de workflow
Ce script nettoie les instances de workflow inactives qui n’ont pas été modifiées depuis plus d’un mois et sans mémo.
DELETE FROM wfinstance
WHERE wfid IN (
SELECT wfid
FROM wftransaction
WHERE memo IS NULL
AND transdate <= (CURRENT TIMESTAMP - 1 MONTH)
)
AND active = 0;
COMMIT;
5. Suppression des tentatives de connexion
Enfin, pour alléger davantage la base de données, vous pouvez supprimer les enregistrements de la table logintracking qui datent de plus de trois mois.
DELETE FROM logintracking
WHERE attemptdate <= (CURRENT TIMESTAMP - 3 MONTH);
COMMIT;
En exécutant ces scripts, vous pouvez maintenir votre base de données propre et performante en supprimant les données de workflow inutiles et obsolètes. Assurez-vous de toujours effectuer une sauvegarde complète de votre base de données avant de procéder à des opérations de suppression. Cela garantit que vous pouvez restaurer les données si nécessaire.