Aller au contenu

    Script de suppression des transactions inutiles

    Cet article explique comment utiliser le script Planisware de suppression des transactions inutiles.

    Objectif : Supprimer des transactions inutiles dans Planisware.

    Introduction

    Nous traitons ici des transactions des processus Intranet Servers. Ces transactions sont écrites dans une table de la base de données Planisware nommée OPX2_TRANSACTION, et plus en détail dans TRANSACTION.log depuis lesquelles il est possible de retrouver tout l’historique des transactions.

    Quand on purge les transactions inutiles, on purge la table OPX2_TRANSACTION et on conserve uniquement la dernière transaction des objets (leur dernière valeur), c’est à dire qui ne sont pas référencées par d’autres objets OPX2 comme dernière modification réalisée sur l’objet.

    Le script de purge contient également un critère sur la date de la transaction : par défaut la purge ne concerne que les transactions réalisées il y a plus de 7 jours.

    Génération du script

    Ce script est accessible depuis le client lourd Planisware.

    Se connecter avec un utilisateur admin et passer en mode administrateur.

    Aller dans Fichier>Administration>Script pour effacer les transactions inutiles…

    Planisware demande où vous désirez enregistrer le script sur votre poste et quel nom lui donner.

    Renseignez ces champs puis validez.

    Un message apparait vous confirmant la génération du script d’effacement des transactions inutiles sur votre poste, au lieu et avec le nom que vous avez choisi.

    Cliquer sur OK, La pop-up se ferme.

    Utilisation du script

    Il faut exécuter ce script en SQL directement sur votre base de données, car il est en « .sql ».

    Point d’attention particulière :

    A la génération du script, une table SELECT_OPTIMIZER (qui sera également purgée à la fin de l’opération) est créée dans la base de données. Qui servira à identifier la dernière transaction des objets OPX2 dans la table OPX2_TRANSACTION.

    Donc sur chaque environnement il faudra régénérer le script, car même si la version applicative est identique il sera nécessaire d’avoir généré la table SELECT_OPTIMIZER pour pouvoir utiliser le script.

    En effet, on pourra exécuter le script sur la BDD de l’environnement d’où le script est généré. Mais pas sur l’environnement qui n’a pas généré de script de purge, car la table sera absente.

    Le script se terminera en erreur :

    > INSERT INTO SELECT\_OPTIMIZER (OPX2\_KEY,OBJECT\_ID) (select distinct ‘trn\_cleanup’, MODIFY\_VERSION from where (NOT (MODIFY\_VERSION IS NULL)))

    > ERROR at line 1:

    > ORA-00942: table or view does not exist

    Ici l’erreur indique que la table SELECT_OPTIMIZER n’existe pas dans la base sur laquelle on essaie d’exécuter le script SQL de purge des transactions inutiles.

    Remarque :

    Il est conseillé de faire tourner cette requête assez souvent pour vider la table de transactions. En effet sans purge la volumétrie de cette table peut croitre de manière importante et continue ce qui peut in fine impacter les performances.

    Il peut être intéressant d’adapter la durée de rétention des transactions, initialement à 7 jours, au contexte de l’utilisation de l’application.

    Attention : Comme la plupart des scripts SQL exécutés directement en base de données il est conseillé de l’exécuter lorsque les services Planisware sont arrêtés.