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 Insights sur les requêtes, 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 total des requêtes.

Avant de commencer

Pour surveiller les requêtes actives, vous pouvez utiliser l'édition Cloud SQL Enterprise ou Cloud SQL Enterprise Plus.

Pour mettre fin à une session ou à une transaction de longue durée dans les requêtes actives, vous devez utiliser l'édition Cloud SQL Enterprise Plus pour votre instance Cloud SQL.

Pour en savoir plus sur les éditions Cloud SQL, consultez la page Présentation des éditions Cloud SQL.

Rôles et autorisations requis

Pour obtenir les autorisations nécessaires pour afficher les requêtes actives, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet qui héberge l'instance Cloud SQL :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour afficher les requêtes actives. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour afficher les requêtes actives :

  • Afficher le résumé de l'activité de la base de données et les transactions de longue durée :
    • databaseinsights.activeQueries.fetch
    • databaseinsights.activitySummary.fetch

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Activer les requêtes actives

Lorsque vous activez les insights sur les requêtes, vous activez automatiquement les requêtes actives. Pour pouvoir mettre fin à une session ou à une transaction de longue durée dans les requêtes actives, vous devez utiliser les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus.

Désactiver les requêtes actives

Vous ne pouvez pas désactiver les requêtes actives sans désactiver les insights sur les requêtes. Pour désactiver les requêtes actives et les insights sur les requêtes, consultez Désactiver les insights sur les requêtes.

Afficher les requêtes actives

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

  1. Dans la Google Cloud console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

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

  3. 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.
  4. Cliquez sur l'onglet Requêtes actives.

    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.

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 de session Identifiant unique de la session.
Requête Texte de requête SQL.
État de la session État de la session.
Durée de la requête Durée d'exécution de la requête.
ID de la session bloquante ID de la session qui bloque la session.
Type d'événement d'attente Type d'événement d'attente, si la requête est bloquée pour l'exécution de la requête.
Ressource d'attente Ressource pour laquelle la requête est actuellement en attente, si la requête est bloquée pour l'exécution de la requête.
Durée d'attente de la transaction Durée de l'attente actuelle, si la session est bloquée.
Lectures logiques Nombre de lectures logiques effectuées par la requête.
Lectures Nombre de lectures effectuées par la requête.
Écritures Nombre d'écritures effectuées par la requête.
Base de données Base de données où la session est exécutée.
Utilisateur Nom de l'utilisateur connecté à la base de données.
Adresse du client Adresse IP spécifique du client qui a envoyé une requête.
Temps CPU (ms) Temps CPU en millisecondes utilisé par la requête.
Nom de l'application Nom de l'application qui a lancé la session.
Lignes de la transaction modifiées Nombre de lignes renvoyées au client par cette requête.
% d'exécution Pourcentage de travail effectué, si la requête signale la progression.
Mémoire attribuée pour les requêtes Nombre de pages allouées à l'exécution de la requête.
Action Contient un lien permettant de mettre fin à une session.

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

Vous pouvez utiliser le Options d'affichage du contenu... menu vertical pour filtrer les colonnes que vous souhaitez afficher.

Mettre fin à une session

Pour mettre fin à une session ou à une transaction de longue durée, vous devez utiliser l'édition Cloud SQL Enterprise Plus et activer les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus.

Les opérations de longue durée peuvent prendre plus de temps à se terminer.

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 session.
  3. Dans la fenêtre Arrêter la session, cliquez sur Confirmer.

Étape suivante