Questa pagina descrive come monitorare e risolvere i problemi relativi alle query attive nel database. Il monitoraggio di queste query può aiutare a identificare le cause della latenza del sistema e dell'utilizzo elevato della CPU.
Nel pannello Query Insights, puoi visualizzare un riepilogo delle transazioni attive e un elenco di transazioni con query e statistiche associate. Le transazioni vengono visualizzate in base all'ora di inizio della transazione. Se è in esecuzione un numero elevato di query, i risultati potrebbero essere limitati a un sottoinsieme del totale delle query.
Prima di iniziare
Per monitorare le query attive, puoi utilizzare la versione Cloud SQL Enterprise o Cloud SQL Enterprise Plus.
Per terminare una sessione o una transazione a lunga esecuzione nelle query attive, devi utilizzare la versione Cloud SQL Enterprise Plus per l'istanza Cloud SQL.
Per saperne di più sulle versioni di Cloud SQL, consulta Introduzione alle versioni di Cloud SQL.
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni necessarie per visualizzare le query attive, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto che ospita l'istanza Cloud SQL:
-
Visualizza il riepilogo dell'attività dell'istanza:
Visualizzatore Cloud SQL (
roles/cloudsql.viewer
) -
Visualizza il riepilogo dell'attività del database e le transazioni a esecuzione prolungata:
Database Insights Viewer (
roles/databaseinsights.viewer
) -
Termina una sessione o una transazione a lunga esecuzione:
-
Cloud SQL Editor (
roles/cloudsql.editor
) -
Database Insights Operations Admin (
roles/databaseinsights.operationsAdmin
)
-
Cloud SQL Editor (
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per visualizzare le query attive. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per visualizzare le query attive sono necessarie le seguenti autorizzazioni:
-
Visualizza il riepilogo dell'attività del database e le transazioni di lunga durata:
-
databaseinsights.activeQueries.fetch
-
databaseinsights.activitySummary.fetch
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Abilitare le query attive
Per attivare le query attive per un'istanza Cloud SQL Enterprise, procedi nel seguente modo:
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Nel riquadro Configurazione, fai clic su Modifica configurazione.
- Nella sezione Personalizza la tua istanza, espandi Approfondimenti sulle query.
- Assicurati che l'opzione Abilita Query Insights sia attiva.
- Seleziona Analisi query attiva.
- Fai clic su Salva.
Per attivare le query attive per un'istanza della versione Cloud SQL Enterprise Plus:
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Nel riquadro Configurazione, fai clic su Modifica configurazione.
- Nella sezione Personalizza la tua istanza, espandi Approfondimenti sulle query.
- Assicurati che l'opzione Abilita Query Insights sia attiva.
- Seleziona Abilita le funzionalità di Enterprise Plus.
- Seleziona Analisi query attiva.
- Fai clic su Salva.
Per poter terminare una sessione o una transazione a lunga esecuzione nelle query attive, devi utilizzare Query Insights per Cloud SQL Enterprise Plus.
Disabilitare le query attive
Per disattivare le query attive su un'istanza Cloud SQL Enterprise o Cloud SQL Enterprise Plus, procedi nel seguente modo:
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Nel riquadro Configurazione, fai clic su Modifica configurazione.
- Nella sezione Personalizza la tua istanza, espandi Approfondimenti sulle query.
- Deseleziona la casella di controllo Analisi query attiva.
- Fai clic su Salva.
Visualizza query attive
Per visualizzare le query attive, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
Per visualizzare la dashboard Approfondimenti sulle query, esegui una delle seguenti operazioni:
- Seleziona la scheda Approfondimenti sulle query.
- Fai clic su Accedi a Query Insight per informazioni più approfondite su query e prestazioni. Si apre la dashboard Approfondimenti sulle query. Nella parte superiore vengono visualizzati i dettagli dell'istanza.
Fai clic sulla scheda Query attive.
Da qui puoi modificare le informazioni della query visualizzate nella tabella Transazioni con esecuzione più lunga:
- Database: filtra il carico delle query su un database specifico o su tutti i database.
- Utente: filtra il caricamento delle query da un account utente specifico.
Prospetto riepilogativo di tutte le query attive: fornisce una panoramica di tutte le query attive visualizzando le connessioni totali in base ai seguenti parametri:
- Distribuzione delle connessioni attive classificate in base allo stato della connessione.
- Distribuzione delle transazioni attive in base allo stato della transazione.
- Distribuzione delle durate delle query.
- Transazioni in esecuzione da più tempo: fornisce una panoramica delle 50 query in esecuzione (nello stato attivo e inattivo in transazione) in base al tempo di esecuzione decrescente. Puoi filtrare e ordinare le query attive nella tabella.
Visualizza query attive normalizzate
Puoi visualizzare un elenco delle transazioni a esecuzione prolungata principali 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 i diversi valori utilizzati nell'esempio seguente:
Query regolari
select * from test_table where id=1;
select * from test_table_where id=2;
Query riepilogativa o normalizzata
select * from test_table where id=?;
Una query eseguita in sessioni diverse viene visualizzata come voci diverse nella dashboard.
Visualizza le transazioni in esecuzione da più tempo
La tabella Transazioni in esecuzione da più tempo nella dashboard Approfondimenti sulle query contiene le seguenti colonne:
Nome colonna | Descrizione |
---|---|
ID processo | Identificatore univoco della connessione o ID thread. |
Query | Testo della query SQL. |
Stato | Stato della connessione. |
Durata della sessione | Durata dell'ultima sessione in esecuzione. |
Durata della transazione | Durata della transazione attiva in esecuzione. |
Durata query | Durata dell'ultima sessione in esecuzione nella transazione. |
Tipo di evento di attesa | Tipo dell'evento di attesa in corso. |
Evento di attesa | Evento di attesa in corso. |
Database | Il nome del database su cui viene eseguita questa connessione. |
Nome applicazione | Il nome dell'applicazione su cui viene eseguita questa connessione. |
Nome utente | Nome dell'utente connesso al database. |
Indirizzo client | Indirizzo IP specifico del client che ha inviato una query. |
Azione | Contiene un link per interrompere una transazione. |
La visualizzazione viene aggiornata automaticamente ogni 60 secondi.
Terminare un processo
Per terminare un processo o una transazione a esecuzione prolungata nelle query attive, devi utilizzare la versione Cloud SQL Enterprise Plus e abilitare sia l'analisi delle query attive sia gli approfondimenti sulle query per la versione Cloud SQL Enterprise Plus.
Le operazioni a lunga esecuzione possono richiedere più tempo per essere terminate.
Per terminare una query o una transazione, completa i seguenti passaggi:
- Nella tabella Transazione in esecuzione da più tempo, seleziona una query.
- Nella colonna Azione, fai clic su Termina collegamento.
- Nella finestra Termina connessione, fai clic su Conferma.
Se il sistema termina correttamente la query o la transazione, viene visualizzato un messaggio di operazione riuscita. Il sistema esegue anche un rollback, se necessario.
Query attive bloccate
Se una query attiva specifica è bloccata o viene eseguita molto più a lungo del previsto, può bloccare altre query dipendenti.
Cloud SQL ti offre la possibilità di terminare query attive specifiche a esecuzione prolungata o bloccate.
Abilitare l'analisi delle query attive bloccate
Per impostazione predefinita, Google Cloud la console non mostra quali query attive sono bloccate. Per poter analizzare le query attive bloccate, devi prima attivare sia la versione Cloud SQL Enterprise Plus sia le query attive sull'istanza.
Per abilitare l'analisi delle query attive bloccate:
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Modifica.
- Espandi Query Insights.
- Seleziona sia Abilita le funzionalità di Enterprise Plus sia Analisi delle query attive. Entrambe le impostazioni sono obbligatorie.
- Seleziona Analisi delle query bloccate.
- Fai clic su Salva.
Identificare e terminare una query attiva bloccata
I seguenti passaggi mostrano come identificare e terminare una query attiva specifica che potrebbe bloccare altre query.
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Nel menu di navigazione SQL, fai clic su Approfondimenti sulle query.
- Fai clic sulla scheda Query attive.
Se non hai già query attive in esecuzione, vai a Cloud SQL Studio ed esegui le query che vuoi esaminare.
- Vai alla sezione Transazioni in esecuzione da più tempo. Puoi
visualizzare fino a 50 delle query attive in esecuzione da più tempo.
Ogni voce visualizzata include le seguenti informazioni:
- ID processo: l'ID processo della query. Fai clic su
- Icona a forma di clessidra: Questa icona indica che il processo è in attesa del completamento di un'altra query. Se accanto all'icona è incluso un numero, questo indica quante query dipendenti sono in attesa del completamento di questo processo.
- Icona del simbolo di blocco: questa icona indica che la procedura non può essere completata e potrebbe bloccare altre query.
espandi
per visualizzare la voce. Puoi visualizzare una delle due icone:
- Tipo di query: il tipo di query in esecuzione, ad esempio
SELECT
oUPDATE
. - Stato: lo stato della query attiva, ad esempio
ACTIVE
. - Durata sessione (secondi): la durata della sessione attuale (in secondi).
- Durata della transazione (secondi): la durata della transazione attiva attuale (in secondi).
- Durata della query (secondi): la durata della query attiva attuale (in secondi).
- Tipo di evento di attesa: il tipo di evento di attesa attualmente in corso durante l'esecuzione della query, ad esempio Timeout o Blocco.
- Evento di attesa: l'evento di attesa attualmente in corso durante l'esecuzione della query.
- Azione: le azioni possibili da intraprendere, ad esempio Termina connessione.
Fai clic per espandere l'ID processo che vuoi esaminare. Puoi espandere i processi sottostanti fino a tre livelli di profondità nell'albero di indagine.
- ID processo: l'ID processo della query. Fai clic su
- Identifica la query specifica bloccata, quindi fai clic su Termina connessione. Dopo aver terminato la connessione, puoi andare su Cloud SQL Studio per eseguire di nuovo le query attive.