Optimiser le fonctionnement de la base de données avec STATMHI
STATMHI est un outil de détection de statistique d'utilisation de la base de données afin de détecter des problèmes de performance. Cet outil pourra vous indiquer à quel moment une requête se révèle infructueuse et vous donnera aussi plusieurs solutions pour y répondre de façon optimale.
Lorsque vous posez un filtre sur une table, celui-ci peut provoquer des phénomènes de lenteur dans l’exécution de la requête. Cette lenteur peut, si le filtre repose sur l’utilisation d’une clé composée, être le résultat d’une mauvaise détermination des champs qui composent cette clé. D’autre part, il est également possible qu’une clé composée soit tout simplement manquante.
Voir aussi : Index et clés composées.
Principe de fonctionnement de l’outil
Le principe de notre outil d’optimisation de la base de données, qui vous permettra d’améliorer les performances de vos filtres, est le suivant :
- vous indiquez tout d’abord le nombre d’enregistrements minimum de la ou des tables à analyser,
- ainsi que le nombre de lectures non satisfaisantes à partir duquel vous souhaitez que l’information vous soit remontée (seuil de déclenchement de l’outil) ou le pourcentage de lectures non satisfaisantes d’enregistrements que vous ne souhaitez pas dépasser par rapport au nombre d’enregistrements minimum de la table,
- ensuite vous définissez sur quelle base et sur quelle table devra travailler notre outil (choix optionnel)
- puis vous entrez dans Oxygène et reproduisez les actions qui sont habituellement lentes.
Création du fichier contenant les propositions de solutions
Dès le déclenchement de notre outil, selon les critères préalablement définis, un fichier de log se crée automatiquement, et il ne vous reste plus qu’à le consulter. Pour cela, éditez le fichier de log (nom du fichier : logFiltresMhi-date) portant la date du jour que vous trouvez dans [OXYPP]\SYSTEME. Remarque : un seul fichier de log est créé par jour. Cependant, si vous utilisez notre outil plusieurs fois dans la journée, sur plusieurs bases et/ou tables différentes, les indications relatives à vos différentes actions s’accumuleront les unes à la suite des autres à l’intérieur du fichier. Ainsi , il n’y a aucun risque d’écraser votre fichier de log avec un nouveau fichier, par inadvertance.
Exportation des informations
Le fichier de log que vous allez obtenir avec notre outil, vous présentera la requête qui pose un problème ainsi qu’une ou plusieurs propositions de clés composées à appliquer pour optimiser l’utilisation de la base de données, quand il existe une solution.
Attention ! L’application de trop nombreuses clés composées peut entraîner une lenteur du système due aux mises à jour successives des différents index. Prenez donc soin, si cela est possible, de mettre en place des clés composées qui corrigent plusieurs phénomènes de lenteur en même temps. Par ailleurs, les solutions qui sont proposées ne tiennent pas compte des clés que vous avez déjà pu créer, dans certains cas donc, la proposition qui est faite peut s’avérer être déjà en place, dans ce cas la solution ne peut être meilleure.
Enfin, notez que lorsque la requête qui entraîne des lenteurs a été réalisée plusieurs fois, notre outil vous l’indique également d’une phrase, donc sans surcharger votre fichier de log pour autant.
Lancement de l’utilitaire d’optimisation
Les paramètres de lancement à utiliser pour faire fonctionner cet outil sont les suivants :
soit /STATMHI=<NLI>,<NME>[,base[,table]]
si vous souhaitez vous baser sur un nombre de lectures infructueuses par rapport au nombre d’enregistrements minimum de la table.
soit /STATMHI=<NLI/NME>%[,base[,table]]
si vous souhaitez vous baser sur un pourcentage de lectures infructueuse par rapport au nombre d’enregistrements minimum de la table.
NLI étant en effet, le nombre de lectures infructueuses, et NME le nombre minimum d’enregistrements de la table.
Attention, il est très important de ne pas laisser d’espace vide dans chaque syntaxe. Un espace signifierait qu’il s’agit d’une nouvelle option dans les paramètres de lancement.
Par ailleurs les signes < et > ne sont pas à écrire, ils indiquent qu’il faut saisir la valeur contenue entre les deux. Enfin, les signes [ et ] indiquent que la définition de la base et/ou de la table est optionnelle. Dans le cas où vous n’indiquez ni table, ni base, l’outil analysera l’ensemble des actions qui seront effectuées. Dans le cas où vous n’indiquez que la base et pas de table, l’analyse sera réalisée sur l’ensemble des tables de la base.
Exemples
Syntaxe n°1 : /STATMHI=50,500,COMPTA
si vous souhaitez analyser toutes les tables de la Comptabilité, comprenant 500 enregistrements minimum, à partir de 50 lectures infructueuses.
Syntaxe n°2 : /STATMHI=10%,GESCOM,GCPCLI
si vous souhaitez analyser uniquement la table clients de la Gestion Commerciale, à partir de 10% de lectures infructueuses par rapport au nombre minimum d’enregistrements de la table.
Exemple de fichier de log
Dans vos fichiers de log, vous trouverez les opérateurs suivants, utilisés par les différents filtres, en voici la signification :
- : jusqu’à
< : moins que
= : égal à
+ : à partir de
> : plus que
# : différent de
? : contient
/ : débute par
! : ne débute pas par