Summary
Description
Sage X3
MAJ 05/11/2020
Lorsqu'une lenteur est signalée sur le logiciel, de nombreuses causes différentes peuvent en être à l'origine.
Cette fiche KB a pour but
- de vous aider dans l'analyse d'un problème de performance
- de vous lister (en fin de KB) les éléments indispensables à fournir au support si vous rencontrez ce type de problème
Resolution
Méthodologie
Pour traiter les sujets de performance autour des solutions Sage X3, nous préconisons d'appliquer la méthodologie suivante en 4 phases :
1. Contexte : collecte des informations sur le contexte de cette lenteur :
- contexte technique (architecture, informations système, base de données, etc)
- contexte de la lenteur :
o Quelles manipulations sont faites, et avec quels paramètres ?
o etc...
En tant que support pour le contexte, ci-joint un questionnaire au format Excel.
Ce questionnaire est à renseigner et à joindre pour toute ouverture d’un ticket support.
QUESTIONNAIRE PERFORMANCE : Questionnaire performance Sage X3 V6 et V7 à V12
2. Vérifications des prérequis et des mises à jour : Suite à la collecte d'informations, il faut vérifier que les prérequis sont respectés (configuration serveur, postes clients), et que le logiciel est relativement à jour (version de patch, version du runtime, version du serveur web syracuse, et serveur d'impression (performances impression)).
https://online-help.sagex3.com/erp/12/fr-fr/Content/V7DEV/prerequisites_overview.html
3.Mesures : Mise en place d'outils de mesure permettant de disposer d'informations complémentaires relatives à la lenteur. Il existe des outils de mesures au niveau des systèmes (OS, BDD, réseaux), mais également dans X3, détaillés ci-dessous.
4. Diagnostic : Cette phase permet d'établir des hypothèses de solutions permettant d’améliorer les performances grâce aux informations de contexte et de mesure collectées.
Les outils de mesure X3 et points à contrôler
- Utilitaire Indice de performance / AIOBENCH : Cet utilitaire, lancé à partir du dossier de référence X3, permet d’effectuer un ensemble d’opérations (écritures, suppressions d’enregistrements, création de fichier, etc) sur un environnement, puis propose un rapport du temps passé. Ce temps peut ensuite être transmis au support Sage et comparé aux temps moyens constatés.
Un bon temps ne signifie pas toujours que tout est bon sur l’environnement, mais un temps moyen ou mauvais peut permettre de mettre en évidence une lacune du système
Pour plus de détail, consulter la fiche Exécution du programme AIOBENCH de stress de la solution X3
Note : si l’environnement utilise plusieurs runtime, il est utile de tester l’utilitaire sur chacun des runtimes.
- Etat des tables (pour avoir l'information des volumes des tables) :
Développement/Utilitaires/Vérifications/Base de données/Etat des tables
L'état des tables permet de connaître la volumétrie de toutes les tables de l'application et donc de repérer celles susceptibles de rentrer en jeu dans la problématique de performance.
Note : l'état des table est également fournit dans l'outil ALOGSUP
- Recherche d'index (vérification de la présence des indexes) :
Développement/Utilitaires/Vérifications/Base de données/Recherche d'index
Cet utilitaire permet de comparer les index du dictionnaire X3 avec ceux présents dans la base de données. Si le rapport met en évidence des index décrits dans le dictionnaire X3 mais non présent dans la base de données, cela peut expliquer la présence de lenteur dans certaines manipulations liées à cette table du fait d’index manquant dans la base de données.
Note : La recherche index est également fournit dans l'outil ALOGSUP
- Statistiques BDD
Développement/Utilitaires/Vérifications/Base de données/Statistiques
Les statistiques base de données permettent à la base de données de réaliser les bons choix d’index pour rapatrier au plus vite les données d’une requête. Ces statistiques doivent être calculées régulièrement.
2 tableaux permettent de voir les dates de dernier calcul sur les tables et sur les indexs des tables
- Trace de timing :
Trace(s) de timing de(s) l'opération(s) longue(s), à activer avant l'opération longue, et à désactiver après.
Elle permet de connaître le détail des temps passé dans chaque sous programmes
L'activation/désactivation se fait en v12 depuis le menu [...]>Diagnostic>
Récupérer la trace finale présente dans le répertoire TRA (et non tmp)
Pour plus de détail, consulter la fiche Aide au diagnostic - Activation Timing
- Trace Oracle:
Elle permet de tracer les requêtes "Base de données" liées au code X3
-> en v12 activer la trace via le menu [...]>Diagnostic>Activation trace Oracle avant l'opération longue
-> en v12 menu désactiver la trace via le menu [...]>Diagnostic> Désactivation trace
Il faut l'activer puis la désactiver sur la partie considérée comme peu performante.
Si la trace doit être réalisée plusieurs fois, il faut fermer la session X3 puis la relancer pour vider la trace en mémoire.
Pour plus de détail, consulter la fiche Aide au diagnostic - Trace Oracle
- Analyse des Mémos :
En gestion objet il est possible de créer des sélections mémorisées. Sur des tables importantes, sur des champs non indexés, et qui peuvent être partagées par plusieurs utilisateurs. Lors de l'exécution du mémo, cela peut provoquer des requêtes lourdes. L'outil d'analyse de mémo permet de lister les mémos pouvant être peu performants.
Développement>utilitaires>vérifications>Analyse mémos
- Statistiques X3
Paramétrage>Exploitation>Statistiques> Paramètres statistiques
Dans X3, il est possible de déclarer des statistiques via la fonction GESPS2, qui permettent d'obtenir des informations d'analyse sur des données de l'application (chiffre d'affaire de chaque commercial, objectif de ventes, etc). Ces données statistiques peuvent être mise à jour 'en temps réel', ou en batch (option sur onglet général). Si il existe par exemple 2 statistiques en temps réel sur les factures, et 3 sur les lignes de factures, lors de la création d'une facture de 10 lignes, il y aura 32 mises à jour de statistiques (2 pour l'entête, 3x10 pour les lignes), ce qui peut avoir un coût en performance.
Diagnostic
L'analyse des traces/mesures et du questionnaire performance doit permettre de se focaliser sur le point consommateur.
Différentes problématiques peuvent engendrer un problème de performance de l'application : ressources machine trop justes, problème de virtualisation, mauvais dimensionnement des Node.js, pré-requis non respectés, algorithme consommateur, traitement lourd lancé par un autre utilisateur, problématique réseau, manque d'un index (on peut alors rajouter un index d'optimisation) historique de données très important (mise en place d'épurations de données), etc...
Un accompagnement des experts Sage pour réaliser un audit approfondi peut également vous être proposé.
Concernant les indexes d'optimisation
Dossier X3 : Paramétrage>Exploitation>Données>Optimisation base de données
Dossier Applicatif : Paramétrage>Exploitation>Données>Optimisation base de données
Le mieux étant l'ennemi du bien, il faut créer ce type d'index avec mesure, et de préférence après avoir pris l'avis d'un administrateur de base de données.
Des index d'optimisation standard sont livrés (dans le dossier X3) lorsque des cas de paramétrage connus mais peu fréquents peuvent poser des problèmes de performances (un index standard pour tous serait trop pénalisant).
Il s'agit bel et bien de paramétrage (pérenne). Ceci signifie que de nouveaux index d'optimisation ne sont livrés, au cours des versions, que dans le dossier de référence (et en aucun cas par voie de patch).
Le fait d'activer un index de ce type ne suffit pas. Il faut :
o Soit utiliser le bouton Exécuter
o Soit revalider les tables sur lesquelles un tel index a été mis en place (ou supprimé).
Ceci doit être fait lorsque personne n'est connecté au dossier.
Eléments à transmettre pour l'ouverture d'un ticket support
Certains éléments évoqués précédemment seront indispensables à l'ouverture d'un ticket support.
Vous trouverez ces informations également sur le guide/checklist disponible sur la fiche Aide à la création d’un ticket dans SWA
- Transmettre le questionnaire de performance : Questionnaire performance Sage X3 V6 et V7 à V12 (ancienne KB111565).
- Vérifier que les prérequis de la configuration matérielle sont respectés.
- Vérifier que les statistiques BDD sont à jour
- Transmettre la trace de l'utilitaire AIOBENCH (ancienne KB104700).
- Fournir la trace ALOGSUP (ancienne KB48484) (ou fournir la trace de la recherche d'index et le résultat de l'état des tables).
- Si la lenteur est ciblée sur une fonction :
- Détailler la lenteur (quelle fonction, quelle manipulation, quels paramètres, etc).
- Fournir une trace de timing de la fonction lente.
- Si BDD Oracle, fournir une trace Oracle de cette fonction lente.
Note : Autres KB/aide qui pourraient vous intéresser...
Analyse-TraceProfiler - cas d'une impression lente
Generation-TraceProfiler - cas d'une impression lente
Baisse de performance très importante lors d'une connexion faite à partir d'un runtime additionnel (Sage X3 PU8 à V12)
Les Mémos dans X3
Lenteur sur l'édition RAPPRO
STOCK et volumétrie
Activer le timing dans un sous programme
Performance Sage X3 avec IE11
Alerte: baisse de performance importante avec les versions Runtime Sage X3 V12 (connexion runtime secondaire)
Blocage de compteur message d'erreur sur la table AVALNUM
Lenteur en création et/ou suppression d’OF (versions Sage X3 V11 P10 et V12 P21)
Aide en ligne :
prérequis v12 complet : http://online-help.sageerpx3.com/erp/12/public/prerequisites_last-version.html