Questa pagina descrive come monitorare e risolvere i problemi relativi alle query attive nel database. Le query attive sono query di lunga durata sul database che possono influire sul rendimento. Il monitoraggio di queste query può aiutare a identificare le cause della latenza del sistema e dell'utilizzo elevato della CPU.
Puoi visualizzare le query attive nella dashboard degli approfondimenti sulle query. Queste query 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 a causa dei vincoli di memoria imposti dal sistema sulla raccolta dei dati.
Prima di iniziare
Per iniziare a visualizzare le query attive, devi attivare le funzionalità avanzate di Query Insights e attivare l'analisi delle query attive per la tua istanza come segue:
Nella console Google Cloud, vai alla pagina Cluster.
Nell'elenco di cluster e istanze, fai clic su un'istanza principale o un'istanza del pool di lettura.
Fai clic su Approfondimenti sulle query.
Fai clic su Edit Settings (Modifica impostazioni).
Nella finestra Modifica impostazioni di Query Insights, seleziona Abilita le funzionalità di Query Insights avanzate per AlloyDB > Analisi delle query attive.
Fai clic su Salva modifiche.
Nella finestra Le modifiche richiedono il riavvio, fai clic su Conferma e riavvia.
Puoi utilizzare l'assistenza di Gemini in Databases per monitorare e risolvere i problemi delle tue risorse AlloyDB per PostgreSQL. Per ulteriori informazioni, consulta Monitorare e risolvere i problemi con l'assistenza di Gemini.
Visualizza le query attive
Per visualizzare le query attive:
Crea un ruolo personalizzato e aggiungi l'autorizzazione
databaseinsights.monitoringViewer
Identity and Access Management (IAM).Aggiungi questo ruolo a ogni utente che visualizza le query attive.
Nella console Google Cloud, apri la pagina AlloyDB.
Fai clic sul nome di un cluster per aprire la pagina Panoramica.
Seleziona la scheda Approfondimenti sulle query. La dashboard degli approfondimenti sulle query mostra i dettagli del cluster selezionato.
Fai clic sulla scheda Visualizzazione delle query attive. La scheda contiene un riepilogo delle query attive in esecuzione e delle 50 transazioni in esecuzione da più tempo.
Puoi filtrare le informazioni in base a uno dei seguenti elementi:
- Database: filtra il carico delle query su un database specifico o su tutti i database.
- Utente: filtra il carico delle query da un utente del database specifico o da tutti gli utenti.
- ID nodo: visualizzato solo per le istanze del pool di lettura; filtra il carico delle query su un nodo dell'istanza del pool di lettura specifico o su tutti i nodi.
Scorecard di riepilogo di tutte le query attive normalizzate: fornisce una panoramica di tutte le query attive mostrando le connessioni totali in base ai seguenti parametri:
- Distribuzione delle connessioni attive classificate in base allo stato della connessione.
- Distribuzione delle connessioni attive in base a diversi tipi di eventi di attesa.
- Distribuzione delle durate delle transazioni per le query che non sono in stato inattivo.
Transazioni in esecuzione da più tempo: fornisce una panoramica delle 50 query in esecuzione più importanti nello stato
active
eidle in transaction
in base al tempo di esecuzione decrescente.
Puoi visualizzare un elenco delle prime cinquanta query attive normalizzate nella dashboard Approfondimenti sulle query.
Una query attiva normalizzata rimuove i dati sensibili e restituisce un digest. Due query identiche tranne che per i valori della clausola WHERE hanno lo stesso digest. Ad esempio, considera le tre query di esempio seguenti:
select * from my_table where id = 1;
select * from my_table where id = 2;
select * from my_table where id = 100;
La versione normalizzata di queste query è il seguente digest:
select * from my_table where id = ?;
Una query eseguita in sessioni diverse viene visualizzata come voci diverse nella dashboard.
Visualizzare le transazioni in esecuzione da più tempo principali
La tabella seguente descrive le colonne della tabella Transazioni in esecuzione più lunghe nella dashboard Approfondimenti sulle query:
Nome colonna | Descrizione |
---|---|
ID processo | L'ID processo è l'identificatore unico della connessione di database. |
ID nodo | L'ID nodo è l'identificatore univoco del nodo dell'istanza del pool di lettura su cui viene eseguita una query. |
Query | Testo della query SQL normalizzato. |
Stato | Stato attuale della connessione. I valori di stato includono active e idle in transaction . |
Durata della sessione | Durata della sessione attuale (in secondi). |
Durata della transazione | Durata della transazione attuale (in secondi). |
Durata della query | Durata della query attiva attuale (in secondi). La durata delle query nello stato idle in transaction è 0 perché non sono in esecuzione. |
Tipo di evento di attesa | Tipo di evento di attesa in corso durante l'esecuzione della query. |
Evento di attesa | Evento di attesa in corso durante l'esecuzione della query. |
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 del database connesso al database. |
Indirizzo client | Indirizzo IP specifico del client che ha inviato una query. |
Azione | Contiene un link per terminare una transazione. |
Il display viene aggiornato automaticamente ogni 60 secondi.
L'utilizzo dei campi Database e Utente per il filtro aggiorna i dati nella pagina.
Per analizzare i dati statici, disattiva l'opzione Aggiornamento automatico e utilizza il campo Filtra della tabella Transazioni in esecuzione più lunghe, se necessario.
Terminare una query o una transazione
Per terminare una query o una transazione, devi disporre del ruolo databaseinsights.operationsAdmin
. Per ulteriori informazioni, consulta la documentazione di riferimento dei ruoli di base e predefiniti di IAM.
Una transazione può contenere più query. Per identificare le query attive al momento, consulta la colonna Query nella tabella Transazione in esecuzione più lunga.
Per terminare una query o una transazione:
- Seleziona la query nella tabella Transazione in esecuzione da più tempo.
- Scorri verso destra fino alla colonna Azione.
- Fai clic su Termina connessione.
Nella finestra Termina connessione, fai clic su Conferma.
La pagina viene aggiornata dopo l'avvio dell'interruzione. Se l'interruzione non va a buon fine, non viene visualizzato alcun messaggio e la query continua a essere visualizzata nell'elenco Query attive. Se l'interruzione è andata a buon fine, la query non viene più visualizzata nell'elenco.