Dépanner un modèle lent

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 4 minutes de lecture
  • Identifiez la source d’un modèle lent et priorisez les améliorations potentielles des performances.

    Avant de commencer

    Rôle requis : sn_app_insights.admin ou admin

    Procédure

    1. Accédez à la Tous > Aperçus d’application > Aperçus d’application > Modèles lents.
    2. Recherchez d’éventuels problèmes de performances en consultant les tables Événements lents, Transactions lentes, Requêtes lentes et Scripts lents.
      • Concentrez-vous sur une période de 1 jour, 7 jours ou 30 jours en sélectionnant une plage de jours.
      • Identifiez les modèles avec des temps d’exécution constamment élevés en triant la colonne Temps d’exécution moyen dans la plage .
      • Pour savoir quels modèles sont exécutés le plus souvent, triez-les en fonction de la colonne Nombre d’exécutions dans la plage .
    3. Sélectionnez un modèle lent avec un temps d’exécution élevé et un nombre d’exécutions élevé.
      Le graphique de détail Temps d’exécution moyen montre le temps d’exécution du modèle lent et sa moyenne mobile sur 1 jour.
    4. Visualisez les performances du modèle de ralentissement au fil du temps en analysant le graphique de détail Temps d’exécution moyen .
      Graphique détaillé du temps d’exécution moyen
      • Recherchez les pics dans la plage de temps sélectionnée. Recherchez des corrélations avec des événements système impactants qui peuvent indiquer une fausse alerte en superposant des événements de diagnostic.
      • Affichez le nombre de fois où le modèle a été exécuté dans la plage de temps sélectionnée.
      • Déterminez si les performances se détériorent au fil du temps en examinant la direction de la ligne de tendance de la moyenne mobile sur 1 jour.
    5. Déterminez ce qui déclenche le modèle de ralentissement en sélectionnant Afficher l’enregistrement.
      L’enregistrement de modèle lent apparaît et fournit des détails supplémentaires, notamment le contenu de la requête ou du script, la première fois et la dernière fois qu’il a été exécuté.
    6. Pour accéder à des informations supplémentaires utiles pour le dépannage, ajoutez les listes connexes Scripts référencés et Modèles lents associés.
      OptionDescription
      Scripts lents
      1. Sélectionnez le menu contextuel du formulaire ( icône Menu contextuel).
      2. Modifiez la vue de formulaire en sélectionnant Afficher > Aperçu de script lent.
      Requêtes lentes
      1. Sélectionnez le menu contextuel du formulaire ( icône Menu contextuel).
      2. Modifiez la vue de formulaire en sélectionnant Afficher > Aperçus de requêtes lentes.
    7. Déterminez la cause de la lenteur.
      • Lors de l’examen d’une requête lente, déterminez quel script ou quelle règle métier a déclenché la lenteur en recherchant l’entrée avec l’ordre d’appel le plus élevé dans la liste connexe Scripts référencés. Par exemple, supposons qu’une requête lente soit déclenchée par un script dont l’ordre d’appel est 2 et qui est appelé par une règle métier dont l’ordre d’appel est 1. Ce script a directement déclenché la requête lente, car il a l’ordre d’appel le plus élevé.
      • Lors de l’examen d’un script lent, identifiez les modèles lents déclenchés par le script en affichant les modèles dans la liste connexe Modèles lents associés. Déterminez les modèles lents à examiner en premier en triant les colonnes Temps d’exécution moyen dans la plage et Nombre d’exécutions moyen dans la plage . Examinez d’abord les modèles lents avec les valeurs les plus élevées dans chaque colonne.
      • Confirmez un problème potentiel en consultant la liste Modèles lents connexes, qui fournit une liste d’autres modèles lents ayant des scripts référencés en commun. Si plusieurs modèles lents font référence au même script include ou à la même règle métier, vous pouvez être sûr que c’est là que le bât blesse.
    8. Facultatif : Pour résoudre les problèmes liés à plusieurs modèles lents, ouvrez chaque enregistrement, vérifiez le nombre d’entrées dans la liste connexe Modèles lents connexes et donnez la priorité au débogage ou à la résolution du modèle lent dont le nombre est plus élevé.
      Le débogage du modèle lent avec un nombre plus élevé est plus susceptible d’améliorer les performances.
    9. Prenez des mesures pour résoudre le problème de performances.
      • Optimisez ou supprimez le script include ou la règle métier incriminé.
      • Déterminez si vous pouvez éviter d’utiliser la requête lente. Si la requête est requise, essayez de l’optimiser avec des conditions de requête supplémentaires ou une requête sys_id afin qu’elle renvoie uniquement les informations nécessaires.
      • Déterminez si un index peut optimiser les performances de la requête lente.

    Dépanner une requête lente

    Après avoir trié la table Requêtes lentes en fonction du champ Nombre d’exécutions dans la plage , vous voyez une instruction SELECT avec un nombre d’exécutions élevé au cours des 7 derniers jours.

    Liste des requêtes lentes

    Pour savoir ce qui déclenche cette requête lente, vous devez sélectionner le nom de la requête pour ouvrir le graphique détaillé, puis sélectionner Afficher l’enregistrement.

    Scripts référencés dans un enregistrement de requête lente

    La liste connexe des scripts référencés affiche trois scripts. Le script DeprecationCalculations a l’ordre d’appel le plus élevé de tous les scripts référencés, ce qui indique qu’il a directement déclenché le modèle lent.

    Pour remédier au problème :

    • Examinez le script include DeprecationCalculations et déterminez si vous pouvez éviter d’utiliser cette requête. Dans cet exemple, la requête porte sur la table fx_currency, ce qui implique un calcul de devise. Essayez de contourner ce calcul ou de le supprimer s’il n’est pas nécessaire.
    • Si la requête ne peut pas être évitée dans DeprecationCalculations, déterminez s’il est possible d’éviter l’appel aux autres scripts avec des ordres d’appel inférieurs ou de réduire le nombre d’exécutions. Dans cet exemple, DepreciationUtils doit appeler DeprecationCalculations, mais vous pouvez peut-être définir la tâche planifiée Calculer la dépréciation pour qu’elle soit exécutée moins fréquemment.
    • S’il n’est pas possible d’ajuster les scripts situés plus bas dans l’ordre d’appel, envisagez d’ajouter un index pour améliorer les performances.