Questa pagina descrive come monitorare e risolvere i problemi relativi alle query attive nel database. Le query attive sono query a esecuzione prolungata sul database che possono influire sul rendimento. Il monitoraggio di queste query può aiutare a identificare le cause della latenza di 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 limiti di memoria imposti dal sistema alla raccolta dei dati.
Prima di iniziare
Per iniziare a visualizzare le query attive, devi abilitare le funzionalità avanzate di Query Insights e attivare l'analisi delle query attive per la tua istanza nel seguente modo:
Nella console Google Cloud , vai alla pagina Cluster.
Nell'elenco di cluster e istanze, fai clic su un'istanza principale o pool di lettura.
Fai clic su Approfondimenti sulle query.
Fai clic su Edit Settings (Modifica impostazioni).
Nella finestra Modifica impostazioni Query Insights, seleziona Abilita funzionalità avanzate di Query Insights per AlloyDB > Analisi 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 Cloud Assist per monitorare e risolvere i problemi delle tue risorse AlloyDB per PostgreSQL. Per ulteriori informazioni, vedi Monitorare e risolvere i problemi con l'assistenza di Gemini.
Visualizza query attive
Per visualizzare le query attive:
Crea un ruolo personalizzato e aggiungi l'autorizzazione IAM (Identity and Access Management)
databaseinsights.monitoringViewer
.Aggiungi questo ruolo per 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 Approfondimenti sulle query mostra i dettagli relativi al cluster selezionato.
Fai clic sulla scheda Visualizzazione query attive. La scheda contiene un riepilogo delle query attive in esecuzione insieme alle 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: viene visualizzato solo per le istanze del pool di lettura; filtra il carico delle query su un nodo specifico dell'istanza del pool di lettura o su tutti i nodi.
Riepilogo del prospetto di tutte le query attive normalizzate: 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 connessioni attive in base ai diversi tipi di eventi di attesa.
- Distribuzione delle durate delle transazioni per le query che non sono in stato di inattività.
Transazioni in esecuzione da più tempo: fornisce una panoramica delle 50 query in esecuzione principali nello stato
active
eidle in transaction
in base al tempo di esecuzione decrescente.
Puoi visualizzare un elenco delle 50 query attive normalizzate principali nella dashboard Query Insights.
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 seguenti tre query di esempio:
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
La seguente tabella descrive le colonne della tabella Transazioni con esecuzione più lunga nel dashboard Query Insights:
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 query | Durata della query attiva attuale (in secondi). La durata delle query nello stato idle in transaction è 0 perché non sono in esecuzione attiva. |
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 | 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 del database 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.
L'utilizzo dei campi Database e Utente per il filtraggio aggiorna i dati nella pagina.
Per analizzare i dati statici, disattiva Aggiornamento automatico e utilizza il campo Filtro della tabella Transazioni con esecuzione più lunga in base alle esigenze.
Terminare una query o una transazione
Per terminare una query o una transazione, devi disporre del ruolo databaseinsights.operationsAdmin
. Per saperne di più, consulta Riferimento ai ruoli di base e predefiniti di IAM.
Una transazione può contenere più query. Per identificare quali query sono attive al momento, consulta la colonna Query nella tabella Transazione con esecuzione più lunga.
Per terminare una query o una transazione, completa i seguenti passaggi:
- Seleziona la query nella tabella Transazione con esecuzione più lunga.
- 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 della chiusura. 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 la chiusura ha esito positivo, la query non viene più visualizzata nell'elenco.