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.
Nella dashboard di 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 delle query totali.
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:
Cloud SQL Viewer (
roles/cloudsql.viewer) -
Visualizza il riepilogo dell'attività del database e le transazioni a lunga esecuzione:
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 saperne di più 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 a lunga esecuzione:
-
databaseinsights.activeQueries.fetch -
databaseinsights.activitySummary.fetch
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Abilita le query attive
Per abilitare le query attive per un'istanza Cloud SQL Enterprise, procedi nel seguente modo:
-
Nella Google Cloud console, 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 Query Insights.
- Assicurati che l'opzione Abilita Query Insights sia attiva.
- Seleziona Analisi delle query attive.
- Fai clic su Salva.
Per abilitare le query attive per un'istanza Cloud SQL Enterprise Plus, procedi nel seguente modo:
-
Nella Google Cloud console, 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 Query Insights.
- Assicurati che l'opzione Abilita Query Insights sia attiva.
- Seleziona Abilita le funzionalità di Enterprise Plus.
- Seleziona Analisi delle query attive.
- Fai clic su Salva.
Per poter terminare una sessione o una transazione a lunga esecuzione nelle query attive, devi utilizzare Query Insights per la versione Cloud SQL Enterprise Plus.
Disabilita le query attive
Per disabilitare le query attive su un'istanza Cloud SQL Enterprise o Cloud SQL Enterprise Plus, procedi nel seguente modo:
-
Nella Google Cloud console, 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 Query Insights.
- Deseleziona la casella di controllo Analisi delle query attive.
- Fai clic su Salva.
Visualizza query attive
Per visualizzare le query attive, completa i seguenti passaggi:
Nella Google Cloud console, vai alla pagina Istanze Cloud SQL.
Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
Esegui una delle seguenti operazioni per visualizzare la dashboard Query Insights:
- Seleziona la scheda Query Insights.
- Fai clic su Accedi a Query Insights per informazioni più approfondite su query e prestazioni. Si apre la dashboard Query Insights. Nella parte superiore vengono visualizzati i dettagli dell'istanza.
Fai clic sulla scheda Query attive.
Da qui puoi modificare le informazioni sulle query visualizzate nella tabella Transazioni in esecuzione da più tempo:
- 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 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 principali in esecuzione (nello stato attivo e inattivo nella transazione) in base al tempo di esecuzione in ordine decrescente. Puoi filtrare e ordinare le query attive nella tabella.
Visualizza le 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 i diversi valori utilizzati nell'esempio seguente:
Query regolari
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 da più tempo nella dashboard Query Insights 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 di evento di attesa dell'evento di attesa in corso. |
| Evento di attesa | Evento di attesa in corso. |
| Database | Nome del database su cui è in esecuzione questa connessione. |
| Nome applicazione | Nome dell'applicazione su cui è in esecuzione 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 terminare una transazione. |
La visualizzazione viene aggiornata automaticamente ogni 60 secondi.
Puoi utilizzare il Opzioni di visualizzazione dei contenuti... menu verticale per filtrare le colonne che vuoi visualizzare.
Termina un processo
Per terminare un processo o una transazione a lunga esecuzione nelle query attive, devi utilizzare la versione Cloud SQL Enterprise Plus e abilitare sia Analisi delle query attive sia Query Insights 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 Transazioni in esecuzione da più tempo, seleziona una query.
- Nella colonna Azione, fai clic su Termina connessione.
- 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. Se necessario, il sistema esegue anche un rollback.
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 lunga esecuzione o bloccate.
Abilita 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 abilitare sia la versione Cloud SQL Enterprise Plus sia le query attive sull'istanza.
Per abilitare l'analisi delle query attive bloccate:
Console
-
Nella Google Cloud console, 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.
Identifica e termina una query attiva bloccata
I seguenti passaggi mostrano come identificare e terminare una query attiva specifica che potrebbe bloccare altre query.
Console
-
Nella Google Cloud console, 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 Query Insights.
- 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 Espandi
per visualizzare la voce. Puoi visualizzare una delle due icone seguenti:
- 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 numero indica quante query dipendenti sono in attesa del completamento di questo processo.
- Icona a forma di simbolo di blocco: questa icona indica che il processo non può essere completato e potrebbe bloccare altre query.
- Tipo di query: il tipo di query in esecuzione, ad esempio
SELECToUPDATE. - Stato: lo stato della query attiva, ad esempio
ACTIVE. - Durata della 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: possibili azioni 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 Espandi
per visualizzare la voce. Puoi visualizzare una delle due icone seguenti:
- Identifica la query specifica bloccata, quindi fai clic su Termina connessione. Dopo aver terminato la connessione, puoi andare a Cloud SQL Studio per eseguire di nuovo le query attive.