Surveiller les requêtes actives

Cette page explique comment surveiller et dépanner les requêtes actives dans votre base de données. La surveillance de ces requêtes peut aider à identifier les causes de la latence du système et de l'utilisation élevée du processeur.

Dans le tableau de bord de Query Insights, vous pouvez afficher un résumé des transactions actives et une liste des transactions avec les requêtes et les statistiques associées. Les transactions sont affichées par heure de début. Si un grand nombre de requêtes sont en cours d'exécution, les résultats peuvent être limités à un sous-ensemble du nombre total de requêtes.

Avant de commencer

Pour afficher vos requêtes actives, procédez comme suit :

  1. Configurez Gemini dans les bases de données.
  2. Créez un rôle personnalisé et ajoutez les autorisations suivantes:
    Tâches Rôles Autorisations
    Afficher les recommandations databaseinsights.viewer databaseinsights.activeQueries.fetch
    databaseinsights.activitySummary.fetch
    Arrêter les recommandations databaseinsights.operationsAdmin N/A

Afficher les requêtes actives

Pour afficher vos requêtes actives, procédez comme suit:

  1. Ajoutez ce rôle pour chaque utilisateur qui affiche des requêtes actives.

  2. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  3. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.

  4. Effectuez l'une des opérations suivantes pour afficher le tableau de bord d'Insights sur les requêtes:

    • Sélectionnez l'onglet Insights sur les requêtes.
    • Cliquez sur Consulter la page Insights sur les requêtes pour obtenir des informations plus détaillées sur les requêtes et les performances. Le tableau de bord d'Insights sur les requêtes s'ouvre. Il affiche des détails sur l'instance en haut.
  5. Cliquez sur l'onglet Vue de la requête active.

    Vous pouvez alors modifier les informations de requête qui s'affichent dans la table Transactions les plus longues:

    • Bases de données : permet de filtrer la charge des requêtes sur une base de données spécifique ou sur toutes les bases de données.
    • Utilisateur : permet de filtrer la charge des requêtes à partir d'un compte utilisateur spécifique.
    • Tableau de données récapitulatif de toutes les requêtes actives: fournit un aperçu de toutes les requêtes actives en affichant le nombre total de connexions en fonction des paramètres suivants:
      1. Répartition des connexions actives classées par état de connexion.
      2. Répartition des transactions actives en fonction de l'état des transactions.
      3. Distribution des durées des requêtes.
      4. Transactions les plus longues: fournit une vue d'ensemble des 50 requêtes en cours les plus fréquentes (à l'état active) par ordre de durée d'exécution décroissante. Vous pouvez filtrer et trier les requêtes actives dans la table.

Afficher les requêtes actives normalisées

Vous pouvez afficher la liste des transactions de longue durée les plus fréquentes avec des requêtes actives normalisées dans le tableau de bord Insights sur les requêtes. Une requête active normalisée supprime les données sensibles et renvoie un condensé. Le condensé est le même pour différentes valeurs utilisées dans l'exemple suivant:

  • Requêtes standards

    • select * from test_table where id=1;
    • select * from test_table_where id=2;
  • Requête condensée ou normalisée

    • select * from test_table where id=?;

Une requête exécutée dans différentes sessions s'affiche sous la forme d'entrées différentes dans le tableau de bord.

Afficher les transactions les plus longues

La table Transactions les plus longues du tableau de bord Insights sur les requêtes contient les colonnes suivantes:

nom de la colonne Description
ID du processus Identifiant unique de la connexion.
Requête Texte de requête SQL.
État de la transaction État d'exécution actuel de la transaction. Les valeurs autorisées sont les suivantes: RUNNING, LOCK WAIT, ROLLING BACK et COMMITTING.
État des threads L'état du thread (ou état de la requête) indique l'état actuel du thread actif.
Heure de début de la transaction Code temporel de début de l'exécution de la transaction.
Durée de la transaction Durée de la transaction active actuelle en secondes.
Durée d'attente des transactions Durée d'attente en secondes de la transaction active en cours.
Durée de l'état des threads Temps écoulé pour la requête.
Lignes de transaction verrouillées Nombre de lignes verrouillées par la transaction active actuelle.
Lignes de transaction modifiées Nombre de lignes modifiées par la transaction active actuelle.
Base de données Nom de la base de données sur laquelle cette connexion est exécutée.
Nom d'utilisateur Nom de l'utilisateur connecté à la base de données.
Adresse du client Adresse IP du client à partir duquel un utilisateur se connecte à la base de données.
Action Contient un lien permettant de mettre fin à une transaction.

L'écran est actualisé automatiquement toutes les 60 secondes.

Arrêter une connexion

Pour mettre fin à une requête ou à une transaction, vous devez disposer du rôle databaseinsights.operationsAdmin. Pour en savoir plus, consultez la page Rôles IAM de base et prédéfinis.

Pour mettre fin à une requête ou à une transaction, procédez comme suit:

  1. Dans le tableau Transaction la plus longue, sélectionnez une requête.
  2. Dans la colonne Action, cliquez sur Arrêter la connexion.
  3. Dans la fenêtre Arrêter la connexion, cliquez sur Confirmer.

Une requête de base de données renvoie immédiatement une réponse pendant que la résiliation se produit en arrière-plan.