Monitora le query attive

Questa pagina descrive come monitorare le query attive nel database e risolvere i relativi problemi. Il monitoraggio di queste query può aiutare a identificare le cause della latenza di sistema e dell'utilizzo elevato della CPU.

Nella dashboard di Query Insights puoi visualizzare un riepilogo delle transazioni attive e un elenco delle transazioni con query e statistiche associate. Le transazioni vengono visualizzate in base alla relativa ora di inizio. Se il numero di query in esecuzione è elevato, i risultati potrebbero essere limitati a un sottoinsieme delle query totali.

Prima di iniziare

Per visualizzare le query attive, devi procedere come segue:

  1. Configura Gemini in Databases.
  2. Crea un ruolo personalizzato e aggiungi le seguenti autorizzazioni:
    Attività Ruoli Autorizzazioni
    Visualizza i suggerimenti databaseinsights.viewer databaseinsights.activeQueries.fetch
    databaseinsights.activitySummary.fetch
    Termina suggerimenti databaseinsights.operationsAdmin N/A

Visualizza query attive

Per visualizzare le query attive:

  1. Aggiungi questo ruolo per ogni utente che visualizza le query attive.

  2. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  3. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.

  4. Per visualizzare la dashboard Approfondimenti sulle query, procedi in uno dei seguenti modi:

    • Seleziona la scheda Approfondimenti sulle query.
    • Fai clic su Vai a Query Insights per informazioni più dettagliate su query e prestazioni. Si apre la dashboard Query Insights. I dettagli dell'istanza sono mostrati in alto.
  5. Fai clic sulla scheda Visualizzazione query attiva.

    Da qui, puoi modificare le informazioni sulla query visualizzate nella tabella Transazioni in esecuzione più lunga:

    • Database: filtra il carico delle query su un database specifico o su tutti i database.
    • Utente: filtra il carico delle query da un account utente specifico.
    • Prospetto riepilogativo di tutte le query attive: fornisce una panoramica di tutte le query attive mostrando le connessioni totali in base ai seguenti parametri:
      1. Distribuzione di connessioni attive classificate per stato di connessione.
      2. Distribuzione delle transazioni attive in base allo stato della transazione.
      3. Distribuzione delle durate delle query.
      4. Transazioni in esecuzione più lunga: fornisce una panoramica delle 50 query principali in esecuzione (nello stato attiva) in base al tempo di esecuzione decrescente. Nella tabella puoi filtrare e ordinare le query attive.

Visualizza query attive normalizzate

Puoi visualizzare un elenco delle principali transazioni a lunga esecuzione con query attive normalizzate nella dashboard Query Insights. Una query attiva normalizzata rimuove i dati sensibili e restituisce un digest. Il digest è lo stesso per valori diversi utilizzati nell'esempio seguente:

  • Query normali

    • select * from test_table where id=1;
    • select * from test_table_where id=2;
  • Digest o query normalizzata

    • select * from test_table where id=?;

Una query eseguita in sessioni diverse viene visualizzata come voci diverse nella dashboard.

Visualizza le principali transazioni in esecuzione da più tempo

La tabella Transazioni in esecuzione più lunga nella dashboard Approfondimenti sulle query contiene le seguenti colonne:

Nome colonna Descrizione
ID processo Identificatore univoco della connessione.
Query Testo della query SQL.
Stato della transazione Stato di esecuzione attuale della transazione. I valori consentiti includono: RUNNING, LOCK WAIT, ROLLING BACK e COMMITTING.
Stato del thread Lo stato del thread (o stato della query) indica lo stato attuale del thread attivo.
Ora di inizio transazione Timestamp di inizio dell'esecuzione della transazione.
Durata della transazione Durata della transazione attiva attuale in secondi.
Durata attesa transazione Durata dell'attesa in secondi per la transazione attiva attuale.
Durata stato thread Tempo trascorso nella query.
Righe transazione bloccate Numero di righe bloccate dalla transazione attiva attuale.
Righe transazione modificate Numero di righe modificate dalla transazione attiva attuale.
Database Nome del database su cui è in esecuzione questa connessione.
Nome utente Nome dell'utente connesso al database.
Indirizzo client L'indirizzo IP del client da cui un utente si connette al database.
Azione Contiene un link per terminare una transazione.

Il display viene aggiornato automaticamente ogni 60 secondi.

Terminare una connessione

Per terminare una query o una transazione, devi disporre del ruolo databaseinsights.operationsAdmin. Per ulteriori informazioni, consulta la documentazione di riferimento sui ruoli IAM di base e predefiniti.

Per terminare una query o una transazione, completa i seguenti passaggi:

  1. Nella tabella Transazione in esecuzione più lunga, seleziona una query.
  2. Nella colonna Azione, fai clic su Termina connessione.
  3. Nella finestra Termina connessione, fai clic su Conferma.

Una richiesta di database viene restituita immediatamente, mentre l'interruzione avviene in background.