Partager via


Tutoriel : Query Performance Insight pour Azure Database pour MySQL – Serveur flexible

Query Performance Insight se propose de fournir une analyse intelligente des requêtes pour les bases de données. Les insights de prédilection sont les modèles de charge de travail et les requêtes de longue durée. La compréhension de ces insights peut vous aider à identifier les requêtes à optimiser pour améliorer les performances globales et utiliser efficacement vos ressources disponibles.

Query Performance Insight est conçu pour vous permettre de passer moins de temps à résoudre les problèmes de performances de base de données en fournissant les informations suivantes :

  • N premières requêtes de longue durée et leurs tendances associées.
  • Détails des requêtes : consultez l’historique de l’exécution indiquant le temps de requête minimal, maximal, moyen et d’écart type.
  • Utilisation des ressources (processeur, mémoire et stockage).

Cet article explique comment utiliser les journaux des requêtes lentes du serveur flexible Azure Database pour MySQL, l’outil Log Analytics et les modèles de classeurs pour visualiser Query Performance Insight pour le serveur flexible Azure Database pour MySQL.

Ce didacticiel vous montre comment effectuer les opérations suivantes :

  • Configurer des journaux des requêtes lentes à l’aide du portail Azure ou d’Azure CLI
  • Configurer les diagnostics
  • Afficher des journaux des requêtes lentes avec Log Analytics
  • Afficher des journaux des requêtes lentes avec des classeurs

Prérequis

Configurer des journaux des requêtes lentes à l’aide du portail Azure

  1. Connectez-vous au portail Azure.

  2. Sélectionnez votre instance de serveur flexible Azure Database pour MySQL.

  3. Dans le volet gauche, sous Paramètres, sélectionnez Paramètres du serveur.

    Capture d’écran montrant la liste « Paramètres du serveur ».

  4. Pour le paramètre slow_query_log, sélectionnez ON.

    Capture d’écran montrant le paramètre « slow_query_log » en position « ON ».

  5. Pour les autres paramètres, comme long_query_time et log_slow_admin_statements, reportez-vous à la documentation sur les journaux des requêtes lentes.

    Capture d’écran montrant les valeurs mises à jour pour les paramètres liés aux journaux des requêtes lentes restants.

  6. Sélectionnez Enregistrer.

    Capture d’écran du bouton « Enregistrer » permettant d’enregistrer les modifications apportées aux valeurs des paramètres.

Vous pouvez revenir à la liste des journaux en fermant la page Paramètres du serveur.

Configurer des journaux des requêtes lentes à l’aide d’Azure CLI

Vous pouvez aussi activer et configurer les journaux des requêtes lentes pour votre instance de serveur flexible Azure Database pour MySQL à partir d’Azure CLI en exécutant la commande suivante :

Important

Pour veiller à ce que les performances de l’instance de serveur flexible Azure Database pour MySQL ne soient pas lourdement impactées, nous vous recommandons de journaliser uniquement les types d’événements et les utilisateurs requis pour vos audits.

  • Activer les journaux des requêtes lentes.
az mysql flexible-server parameter set \
--name slow_query_log \
--resource-group myresourcegroup \
--server-name mydemoserver \
--value ON
  • Définissez la durée long_query_time sur 10 secondes. Ce paramètre journalisera toutes les requêtes qui s’exécutent pendant plus de 10 secondes. Ajustez ce seuil en fonction de votre définition des requêtes lentes.
az mysql server configuration set \
--name long_query_time \
--resource-group myresourcegroup \
--server mydemoserver \
--value 10

Configurer les diagnostics

Les journaux des requêtes lentes sont intégrés aux paramètres de diagnostic Azure Monitor pour vous permettre de canaliser vos journaux vers l’un des trois récepteurs de données suivants :

  • Un espace de travail Log Analytics
  • Un hub d’événements
  • Un compte de stockage

Notes

Vous devez créer vos récepteurs de données avant de configurer les paramètres de diagnostic. Vous pouvez accéder aux journaux des requêtes lentes dans les récepteurs de données que vous avez configurés. L’affichage des journaux peut prendre jusqu’à 10 minutes.

  1. Dans le volet de gauche, sous Supervision, sélectionnez Paramètres de diagnostic.

  2. Dans le volet Paramètres de diagnostic, sélectionnez Ajouter un paramètre de diagnostic.

    Capture d’écran du lien « Ajouter un paramètre de diagnostic » dans le volet « Paramètres de diagnostic ».

  3. Dans la zone Nom, entrez un nom pour le paramètre de diagnostic.

  4. Spécifiez les destinations (espace de travail Log Analytics, hub d’événements ou compte de stockage) auxquelles envoyer les journaux des requêtes lentes en cochant leurs cases correspondantes.

    Notes

    Pour ce tutoriel, vous allez envoyer les journaux des requêtes lentes à un espace de travail Log Analytics.

  5. Sous Journal, pour le type de journal, cochez la case MySqlSlowLogs.

    Capture d’écran du volet « Paramètres de diagnostic » permettant de sélectionner des options de configuration.

  6. Après avoir configuré les récepteurs de données auxquels envoyer les journaux des requêtes lentes, sélectionnez Enregistrer.

    Capture d’écran des options de configuration des paramètres de diagnostic, avec l’option Enregistrer mise en évidence.

Afficher les insights de requête en utilisant Log Analytics

  1. Dans Log Analytics, dans le volet gauche, sous Supervision, sélectionnez Journaux.

  2. Fermez la fenêtre Requêtes qui s’ouvre.

    Capture d’écran du volet « Requêtes » de Log Analytics.

  3. Dans la fenêtre de requête, vous pouvez écrire la requête à exécuter. Pour trouver les requêtes qui durent plus de 10 secondes sur un serveur particulier, nous avons utilisé le code suivant :

    AzureDiagnostics
       | where Category == 'MySqlSlowLogs'
       | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s
       | where query_time_d > 10
    
  4. Sélectionnez l’intervalle de temps, puis exécutez la requête. Les résultats apparaissent dans l’image suivante :

    Capture d’écran d’un journal des requêtes lentes.

Afficher les insights de requête avec des classeurs

  1. Dans le portail Azure, dans le volet gauche, sous Supervision pour votre instance de Serveur flexible Azure Database pour MySQL, sélectionnez Classeurs.

  2. Sélectionnez le modèle Query Performance Insight.

    Capture d’écran montrant tous les classeurs dans la galerie de classeurs.

Dans le classeur, vous pouvez voir les visualisations suivantes :

  • Chargement de requête
  • Nombre total de connexions actives
  • Tendance des requêtes lentes (durée des requêtes > 10 secondes)
  • Détails des requêtes lentes
  • Lister les 5 requêtes les plus longues
  • Résumer les requêtes lentes selon le temps de requête minimal, maximal, moyen et d’écart type

Capture d’écran montrant deux requêtes longues.

Notes

  • Pour voir l’utilisation des ressources, vous pouvez utiliser le modèle Vue d’ensemble.
  • Vous pouvez aussi modifier ces modèles et les personnaliser selon vos besoins. Pour plus d’informations, consultez Azure Workbooks.
  • Pour une consultation rapide, vous pouvez aussi épingler les classeurs ou la requête Log Analytics sur votre tableau de bord. Pour plus d’informations, consultez Créer un tableau de bord dans le portail Azure.

Dans Query Performance Insight, deux métriques peuvent vous aider à trouver les goulots d’étranglement potentiels : la durée et le nombre d’exécutions. Les requêtes de longue durée ont le plus grand risque de verrouiller des ressources le plus longtemps, de bloquer d’autres utilisateurs et de limiter l’évolutivité.

Dans certains cas, un nombre d’exécutions élevé peut augmenter le nombre d’allers-retours réseau. Les allers-retours réseau affectent les performances. Ils peuvent entraîner une latence du réseau et une latence du serveur en aval. Le nombre d’exécutions peut donc faciliter la recherche des requêtes fréquemment exécutées (« bavardes »). Ces requêtes peuvent être facilement optimisées.