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 nombre total de 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 :
-
Afficher le récapitulatif de l'activité de l'instance :
Lecteur Cloud SQL (
roles/cloudsql.viewer
) -
Afficher le récapitulatif de l'activité de la base de données et les transactions de longue durée :
Lecteur Database Insights (
roles/databaseinsights.viewer
) -
Mettre fin à une session ou à une transaction de longue durée :
-
Éditeur Cloud SQL (
roles/cloudsql.editor
) -
Administrateur des opérations Database Insights (
roles/databaseinsights.operationsAdmin
)
-
Éditeur 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écapitulatif 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
Pour activer les requêtes actives pour une instance Cloud SQL Enterprise :
-
Dans la console Trusted Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Dans la tuile Configuration, cliquez sur Modifier la configuration.
- Dans la section Personnaliser votre instance, développez Insights sur les requêtes.
- Assurez-vous que l'option Activer Insights sur les requêtes est activée.
- Sélectionnez Analyse des requêtes actives.
- Cliquez sur Enregistrer.
Pour activer les requêtes actives pour une instance Cloud SQL Enterprise Plus :
-
Dans la console Trusted Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Dans la tuile Configuration, cliquez sur Modifier la configuration.
- Dans la section Personnaliser votre instance, développez Insights sur les requêtes.
- Assurez-vous que l'option Activer Insights sur les requêtes est activée.
- Sélectionnez Activer les fonctionnalités Enterprise Plus.
- Sélectionnez Analyse des requêtes actives.
- Cliquez sur Enregistrer.
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
Pour désactiver les requêtes actives sur une instance Cloud SQL Enterprise ou Cloud SQL Enterprise Plus :
-
Dans la console Trusted Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Dans la tuile Configuration, cliquez sur Modifier la configuration.
- Dans la section Personnaliser votre instance, développez Insights sur les requêtes.
- Décochez la case Analyse des requêtes actives.
- Cliquez sur Enregistrer.
Afficher les requêtes actives
Pour afficher vos requêtes actives, procédez comme suit :
Dans la console Trusted Cloud , accédez à la page Instances Cloud SQL.
Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
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.
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.
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 :
- Répartition des connexions actives classées par état de connexion.
- Répartition des transactions actives en fonction de l'état des transactions.
- Distribution des durées des requêtes.
- Transactions les plus longues : fournit une vue d'ensemble des 50 requêtes en cours les plus fréquentes (à l'état active et inactive en transaction) par temps d'exécution décroissant. Vous pouvez filtrer et trier les requêtes actives dans le tableau.
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 l'ID de connexion ou de thread. |
Requête | Texte de requête SQL. |
État | État de la connexion. |
Durée de la session | Durée de la dernière session en cours. |
Durée de la transaction | Durée d'exécution de la transaction active. |
Durée de la requête | Durée de la dernière requête exécutée dans cette transaction. |
Type d'événement d'attente | Type de l'événement d'attente de l'événement d'attente en cours. |
Événement d'attente | Événement d'attente en cours. |
Base de données | Nom de la base de données sur laquelle cette connexion est exécutée. |
Nom de l'application | Nom de l'application 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 spécifique du client qui a envoyé la requête. |
Action | Contient un lien permettant de mettre fin à une transaction. |
L'écran est actualisé automatiquement toutes les 60 secondes.
Mettre fin à un processus
Pour mettre fin à un processus ou à une transaction de longue durée dans les requêtes actives, vous devez utiliser l'édition Cloud SQL Enterprise Plus et activer à la fois l'analyse des requêtes actives et les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus.
L'arrêt des opérations de longue durée peut prendre plus de temps.
Pour mettre fin à une requête ou à une transaction, procédez comme suit :
- Dans le tableau Transaction la plus longue, sélectionnez une requête.
- Dans la colonne Action, cliquez sur Mettre fin à la connexion.
- Dans la fenêtre Arrêter la connexion, cliquez sur Confirmer.
Si le système interrompt la requête ou la transaction, un message de réussite apparaît. Le système effectue également un rollback si nécessaire.
Requêtes actives bloquées
Si une requête active spécifique est bloquée ou s'exécute beaucoup plus longtemps que prévu, elle peut bloquer d'autres requêtes dépendantes.
Cloud SQL vous permet d'arrêter des requêtes actives spécifiques de longue durée ou bloquées.
Activer l'analyse des requêtes actives bloquées
Par défaut,la console Trusted Cloud n'indique pas les requêtes actives bloquées. Pour pouvoir analyser les requêtes actives bloquées, vous devez d'abord activer l'édition Cloud SQL Enterprise Plus et les requêtes actives sur l'instance.
Pour activer l'analyse des requêtes actives bloquées :
Console
-
Dans la console Trusted Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Cliquez sur Modifier.
- Développez Insights sur les requêtes.
- Sélectionnez Activer les fonctionnalités Enterprise Plus et Analyse des requêtes actives. Les deux paramètres sont obligatoires.
- Sélectionnez Analyse des requêtes bloquées.
- Cliquez sur Enregistrer.
Identifier et mettre fin à une requête active bloquée
Les étapes suivantes vous montrent comment identifier et mettre fin à une requête active spécifique qui pourrait bloquer d'autres requêtes.
Console
-
Dans la console Trusted Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Dans le menu de navigation SQL, cliquez sur Insights sur les requêtes.
- Cliquez sur l'onglet Requêtes actives.
Si vous n'avez pas encore de requêtes actives en cours d'exécution, accédez à Cloud SQL Studio et exécutez les requêtes que vous souhaitez examiner.
- Accédez à la section Transactions dont l'exécution prend le plus de temps. Vous pouvez afficher jusqu'à 50 des requêtes actives les plus longues.
Chaque entrée affichée inclut les informations suivantes :
- ID du processus : ID du processus de la requête. Cliquez sur
- Icône en forme de sablier : cette icône indique que le processus attend la fin d'une autre requête. Si un nombre est indiqué à côté de l'icône, il indique le nombre de requêtes dépendantes qui attendent la fin de ce processus.
- Icône en forme de symbole d'interdiction : cette icône indique que le processus ne peut pas se terminer et qu'il bloque peut-être d'autres requêtes.
Développer pour afficher l'entrée. Vous pouvez voir l'une des deux icônes suivantes :
- Type de requête : type de requête en cours d'exécution, par exemple
SELECT
ouUPDATE
. - État : état de la requête active, par exemple
ACTIVE
. - Durée de la session (secondes) : durée de la session en cours (en secondes).
- Durée de la transaction (en secondes) : durée de la transaction active en cours (en secondes).
- Durée de la requête (en secondes) : durée de la requête active actuelle (en secondes).
- Type d'événement d'attente : type d'événement d'attente en cours lors de l'exécution de la requête, tel que Délai d'inactivité ou Verrouillage.
- Événement d'attente : événement d'attente en cours lors de l'exécution de la requête.
- Action : actions possibles, comme Mettre fin à la connexion.
Cliquez pour développer l'ID du processus que vous souhaitez examiner. Vous pouvez développer les processus sous-jacents jusqu'à trois niveaux de profondeur dans l'arborescence d'investigation.
- ID du processus : ID du processus de la requête. Cliquez sur
- Identifiez la requête spécifique bloquée, puis cliquez sur Arrêter la connexion. Une fois la connexion interrompue, vous pouvez accéder à Cloud SQL Studio pour exécuter à nouveau vos requêtes actives.