Migliorare le prestazioni delle query utilizzando le funzionalità avanzate di Query Insights per AlloyDB

Questa pagina descrive come utilizzare le funzionalità avanzate di Query Insights per AlloyDB per rilevare e analizzare i problemi di prestazioni delle query quasi in tempo reale per le istanze del pool di lettura e principali. Per una panoramica delle funzionalità avanzate di Query Insights per AlloyDB, consulta Panoramica delle funzionalità avanzate di Query Insights per AlloyDB.

Per scoprire come utilizzare gli insight sulle query standard, consulta Migliorare le prestazioni delle query utilizzando gli insight sulle query.

Puoi utilizzare Gemini Cloud Assist per monitorare e risolvere i problemi delle risorse AlloyDB. Per ulteriori informazioni, vedi Monitorare e risolvere i problemi con l'assistenza di Gemini.

Prima di iniziare

Per accedere alla dashboard Query Insights, abilita l'accesso ad AlloyDB per PostgreSQL nel tuo Google Cloud progetto.

Ruoli obbligatori

Per utilizzare le funzionalità avanzate di Query Insights per AlloyDB, devi disporre delle autorizzazioni per eseguire le seguenti operazioni:

  • Per accedere alle funzionalità avanzate di Query Insights per AlloyDB, devi disporre delle autorizzazioni per accedere al dashboard Query Insights di AlloyDB.
  • Per modificare le impostazioni delle funzionalità avanzate di Query Insights per AlloyDB, devi disporre delle autorizzazioni per aggiornare le istanze AlloyDB.

Per ottenere queste autorizzazioni, chiedi all'amministratore di concederti uno dei seguenti ruoli:

  • Visualizzatore di base (roles/viewer)
  • Visualizzatore di approfondimenti sul database (roles/databaseinsights.viewer)

Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire l'accesso.

Abilita le funzionalità avanzate di Query Insights per AlloyDB

Per abilitare la configurazione avanzata di Query Insights per un'istanza AlloyDB, segui questi passaggi:

Console

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Nell'elenco di cluster e istanze, fai clic su un'istanza.

  3. Fai clic su Approfondimenti sulle query.

  4. Fai clic su Attiva o Modifica impostazioni.

  5. Nella scheda Modifica impostazioni di Query Insights, seleziona la casella di controllo Abilita le funzionalità avanzate di Query Insights per AlloyDB.

    Ciò comporta le seguenti modifiche alla configurazione per impostazione predefinita:

    • Attiva le caselle di controllo Analisi degli eventi di attesa e Analisi delle query attive.
    • Aumenta la lunghezza della query da 4500 byte a 100.000 byte.
  6. Salva le modifiche. L'istanza AlloyDB per PostgreSQL viene riavviata.

gcloud

gcloud alpha alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled

Sostituisci quanto segue:

  • INSTANCE: l'ID dell'istanza da aggiornare.
  • CLUSTER: l'ID del cluster dell'istanza.
  • PROJECT: l'ID del progetto del cluster.
  • REGION: la regione del cluster, ad esempio us-central1.

Il flag --observability-config-enabled consente di raccogliere e analizzare i dati su un'istanza AlloyDB per monitorarne le prestazioni e l'integrità. Se vuoi disattivare Query Insights avanzato, utilizza --no-observability-config-enabled.

Terraform

Per utilizzare Terraform per abilitare Query Insights avanzato nell'istanza AlloyDB, imposta il campo enabled su true nel blocco observability_config.

Ecco un esempio:

  observability_config {
    enabled = true
  ...
  }
  

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

REST v1

Questo esempio abilita Query Insights avanzato sull'istanza AlloyDB. Per un elenco completo dei parametri per questa chiamata, consulta Metodo: projects.locations.clusters.instances.patch. Per informazioni sulle impostazioni avanzate di Query Insights, vedi Modificare le impostazioni avanzate di Query Insights.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • CLUSTER_ID: l'ID del cluster che crei. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.
  • PROJECT_ID: l'ID del progetto in cui vuoi posizionare il cluster.
  • LOCATION_ID: l'ID della regione del cluster.
  • INSTANCE_ID: il nome dell'istanza principale che vuoi creare.

Per abilitare la configurazione dell'istanza, utilizza la seguente richiesta PATCH:

PATCH https://alloydb.googleapis.com/v1beta/{instance.name=projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?updateMask=observabilityConfig.enabled}

Il parametro di query updateMask=observabilityConfig.enabled indica all'API di aggiornare il campo enabled all'interno del blocco observabilityConfig.

Il corpo JSON della richiesta ha il seguente aspetto:

{
 "observabilityConfig": {
   "enabled" : true,
 }
}

Dopo aver attivato Query Insights avanzato, puoi modificare le relative impostazioni.

Modificare le impostazioni delle funzionalità avanzate

Per modificare la configurazione di Query Insights avanzato per un'istanza AlloyDB, segui questi passaggi:

Console

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Nell'elenco di cluster e istanze, fai clic su un'istanza.

  3. Fai clic su Approfondimenti sulle query.

  4. Fai clic su Modifica impostazioni e poi modifica una delle seguenti impostazioni:

    • Analisi degli eventi di attesa: l'analisi degli eventi di attesa può aiutarti a identificare e risolvere i problemi di prestazioni nel tuo database. Un evento di attesa è un componente che causa un ritardo nell'elaborazione di un'operazione correlata a una query.
    • Analisi delle query attive. Monitora le query in esecuzione.
    • Archivia commenti delle query Scopri di più sul contesto della query visualizzando i commenti associati a qualsiasi query che esamini, che rientrano nella lunghezza della query. Non è necessaria memoria aggiuntiva. Se i tuoi commenti contengono informazioni sensibili, presta attenzione all'accesso da parte degli utenti.
    • Abilita i suggerimenti sull'indicizzazione. Visualizza i suggerimenti per la creazione degli indici nella pagina Query Insights di un cluster.
    • Nel campo Seleziona la frequenza di esecuzione, puoi definire la frequenza di aggiornamento dei consigli.
    • Archivia gli indirizzi IP client. Attiva questa opzione per monitorare gli indirizzi IP client e analizzare i dati.
    • Archivia i tag delle applicazioni. Attiva questa opzione per scoprire quali API e route modello-visualizzazione-controller effettuano le richieste e raggruppa questi dati per generare le metriche corrispondenti.
    • Campionamento del piano di query I piani di query mostrano le operazioni utilizzate per completare un esempio di query. La frequenza di campionamento determina quanti esempi di query possono essere acquisiti al minuto nei tuoi database. Frequenze più elevate richiedono più memoria.
    • Nel campo Lunghezza delle query, puoi modificare il limite predefinito per la lunghezza delle query, da 256 byte fino a 100 KB. Se le query hanno una lunghezza maggiore, sarà necessaria più memoria. La modifica della lunghezza delle query richiede il riavvio dell'istanza.
  5. Salva le modifiche.

gcloud

gcloud alpha alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-preserve-comments \
--observability-config-track-wait-events \
--observability-config-max-query-string-length=QUERY_LENGTH \
--observability-config-record-application-tags \
--observability-config-query-plans-per-minute=QUERY_PLANS \
--observability-config-track-active-queries

Sostituisci quanto segue:

  • INSTANCE: l'ID dell'istanza da aggiornare.
  • CLUSTER: l'ID del cluster dell'istanza.
  • PROJECT: l'ID del progetto del cluster.
  • REGION: la regione del cluster, ad esempio us-central1.
  • QUERY_LENGTH: la lunghezza della query, compresa tra 1024 e 100.000 byte. La lunghezza predefinita della query è di 10240 byte. Le query più lunghe sono più utili per le query analitiche, ma richiedono anche più memoria. La modifica della lunghezza della query richiede il riavvio dell'istanza. Puoi comunque aggiungere tag alle query che superano il limite di lunghezza.
  • QUERY_PLANS: il numero di piani di query da configurare al minuto. Per impostazione predefinita, vengono acquisiti un massimo di 20 campioni di piano di query eseguiti al minuto su tutti i database dell'istanza. Modifica questo valore scegliendo un numero compreso tra 1 e 20. Per disattivare il campionamento, inserisci 0. È probabile che l'aumento della frequenza di campionamento fornisca più punti dati, ma potrebbe influire negativamente sulle prestazioni.

Se necessario, utilizza i seguenti flag di osservabilità facoltativi:

  • --observability-config-track-active-queries: attiva il monitoraggio delle query attive. Se vuoi disattivare la funzionalità, utilizza --no-observability-config-track-active-queries.
  • --observability-config-record-application-tags: archivia i tag delle applicazioni che ti aiutano a determinare le API e le route modello-visualizzazione-controller (MVC) che effettuano richieste e raggruppa i dati per generare le metriche corrispondenti. Questa opzione richiede di commentare le query con un insieme specifico di tag. Se non vuoi memorizzare i tag dell'applicazione, utilizza --no-observability-config-record-application-tags.
  • --observability-config-preserve-comments: mantiene le annotazioni aggiunte al codice SQL per fornire informazioni sul codice senza influire sulla sua esecuzione. Se non vuoi conservare le annotazioni, utilizza --no-observability-config-preserve-comments.
  • --observability-config-track-wait-events: consente di attendere gli eventi di ogni tipo di evento di attesa. Se non vuoi monitorare gli eventi di attesa, utilizza --no-observability-config-track-wait-events.

Terraform

Per utilizzare Terraform per configurare Query Insights avanzato sull'istanza AlloyDB, utilizza la risorsa google_alloydb_instance.

Di seguito è riportato un esempio:

  observability_config {
    enabled = ENABLED_VALUE
    preserve_comments = PRESERVE_COMMENTS_VALUE
    track_wait_events = TRACK_WAIT_EVENTS_VALUE
    max_query_string_length = MAX_QUERY_STRING_LENGTH_VALUE
    record_application_tags = RECORD_APPLICATION_TAGS_VALUE
    query_plans_per_minute = QUERY_PLANS_PER_MINUTE_VALUE
    track_active_queries = TRACK_ACTIVE_QUERIES_VALUE
  }
  

Sostituisci quanto segue:

  • ENABLED_VALUE: lo stato della funzionalità di osservabilità per un'istanza. Imposta su true quando modifichi le impostazioni e specifica altri flag in base alle esigenze.
  • PRESERVE_COMMENTS_VALUE: conserva i commenti nella stringa di query. Il valore predefinito è false.
  • TRACK_WAIT_EVENTS_VALUE: registra gli eventi di attesa durante l'esecuzione della query per un'istanza. Il valore predefinito è true.
  • MAX_QUERY_STRING_LENGTH_VALUE: lunghezza della stringa di query. Il valore predefinito è 10240. È valido qualsiasi numero intero compreso tra 1024 e 100.000.
  • RECORD_APPLICATION_TAGS_VALUE: registra i tag dell'applicazione per un'istanza. Il valore predefinito è true.
  • QUERY_PLANS_PER_MINUTE_VALUE: il numero di piani di esecuzione delle query acquisiti da approfondimenti al minuto per tutte le query combinate. Il valore predefinito è 20. È valido qualsiasi numero intero compreso tra 0 e 20.
  • TRACK_ACTIVE_QUERIES_VALUE: monitora le query in esecuzione. Il valore predefinito è false.

    Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

REST v1

Questo esempio configura le impostazioni avanzate di Query Insights sull'istanza AlloyDB. Per un elenco completo dei parametri per questa chiamata, consulta Metodo: projects.locations.clusters.instances.patch.

Per configurare le impostazioni avanzate di Query Insights, imposta il campo enabled su true e modifica gli altri campi facoltativi in base alle esigenze. Per un elenco completo dei campi per questa chiamata, consulta ObservabilityInstanceConfig.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • CLUSTER_ID: l'ID del cluster che crei. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.
  • PROJECT_ID: l'ID del progetto in cui vuoi posizionare il cluster.
  • LOCATION_ID: l'ID della regione del cluster.
  • INSTANCE_ID: il nome dell'istanza principale che vuoi creare.

Per modificare la configurazione dell'istanza, utilizza la seguente richiesta PATCH:

PATCH https://alloydb.googleapis.com/v1beta/{instance.name=projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?updateMask=observabilityConfig.enabled,observabilityConfig.preserveComments,observabilityConfig.trackWaitEvents,observabilityConfig.maxQueryStringLength,observabilityConfig.recordApplicationTags,observabilityConfig.queryPlansPerMinute,observabilityConfig.trackActiveQueries,observabilityConfig.trackClientAddress}

Il corpo JSON della richiesta che configura tutti i campi di approfondimento delle query avanzate è il seguente:

{
 "observabilityConfig": {
   "enabled" : true,
   "preserveComments": true,
   "trackWaitEvents": true,
   "maxQueryStringLength": 5000,
   "recordApplicationTags": true,
   "queryPlansPerMinute": 20,
   "trackActiveQueries": true,
 }
}

Rilevare e diagnosticare i problemi di prestazioni delle query

Puoi utilizzare Query Insights avanzato per rilevare e diagnosticare problemi di prestazioni. La dashboard degli approfondimenti sulle query mostra il carico del database, che è una misura del lavoro (in secondi CPU) che le query eseguite nel database selezionato eseguono nel tempo. Ogni query in esecuzione utilizza o attende le risorse. Il carico del database è il rapporto tra il tempo impiegato da tutte le query completate in un dato intervallo, in tempo reale trascorso.

Visualizza la misura del lavoro svolto dalle query eseguite

Il grafico del carico del database fornisce la misura del lavoro svolto (in secondi CPU) da tutte le query eseguite nel database, ripartita in base alla dimensione selezionata. Il carico del database è suddiviso nei dati di distribuzione che selezioni dal menu a discesa del grafico.

Puoi suddividere il carico del database in base a una qualsiasi delle seguenti dimensioni:

  • Query
  • Tipo di evento di attesa
  • Evento di attesa
  • Database
  • Utente

Per visualizzare il lavoro completato dalle query eseguite nel database, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Nell'elenco di cluster e istanze, fai clic su un'istanza.

  3. Fai clic su Approfondimenti sulle query.

  4. Scegli il database e l'utente.

  5. Scegli il tempo di esecuzione totale per il quale vuoi visualizzare i dati, ad esempio 1 o 6 ore oppure un tempo personalizzato.

  6. Nel menu a discesa Caricamento database per tempo di esecuzione, scegli la dimensione che vuoi analizzare. A seconda della dimensione scelta, il grafico mostra il contributo della dimensione scelta al carico complessivo del database. Ad esempio, se selezioni la dimensione Eventi di attesa dal menu a discesa del grafico del carico del database, la distribuzione di tutti gli eventi di attesa che si sono verificati durante l'intervallo di tempo selezionato per il database e l'utente selezionati viene visualizzata nel grafico del carico del database.

    Il grafico del carico del database mostra i dati per tutti e nove i tipi di eventi di attesa e per gli eventi di attesa supportati in PostgreSQL. A seconda del numero di eventi di attesa e dei tipi, vengono visualizzati i primi dieci eventi di attesa e tipi che contribuiscono. Se ci sono più di dieci eventi di attesa, vengono visualizzati i primi nove e i restanti vengono raggruppati nella categoria Altri. Questo approccio si applica anche ad altre dimensioni come Query, Database e Utenti.

Visualizza i principali fattori che contribuiscono al carico del database

Utilizzando la tabella Dimensioni massime per carico del database, puoi visualizzare i principali fattori che contribuiscono al carico del database per l'intervallo di tempo e la dimensione selezionati nel grafico Carico del database. A seconda della dimensione scelta nella tabella Dimensioni principali per carico del database, puoi trovare i valori principali per il periodo di tempo selezionato.

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Nell'elenco di cluster e istanze, fai clic su un'istanza.

  3. Fai clic su Approfondimenti sulle query.

  4. Scegli il database e l'utente.

  5. Scegli il tempo di esecuzione totale per il quale vuoi visualizzare i dati, ad esempio 1 o 6 ore oppure un tempo personalizzato.

  6. Nella tabella Dimensioni massime per carico del database, puoi fare clic su uno dei seguenti elementi:

    Dimensione Descrizione
    Query La tabella mostra le query normalizzate principali in base al tempo di esecuzione totale. Per ogni query, i dati mostrati nelle colonne sono elencati come segue:
    • Media tempo di esecuzione (ms). Tempo medio di esecuzione della query.
    • Tempo totale di esecuzione (ms). Il tempo totale di esecuzione impiegato dalla query specifica.
    • Righe restituite. Il numero medio di righe recuperate per la query.
    • Volte in cui è stato chiamato. Il numero di volte in cui la query è stata chiamata dall'applicazione.
    • %di carico per dimensione del grafico. Il grafico a pillole mostra come la dimensione del grafico è distribuita per la query specifica.
    Tipi di eventi di attesa La tabella mostra l'elenco dei principali tipi di eventi di attesa che si sono verificati durante l'intervallo di tempo selezionato.
    • Tempo medio di attesa (ms). Tempo medio trascorso dalle query nel tipo di evento di attesa specifico.
    • Tempo totale di attesa (ms). Il tempo totale di esecuzione che le query hanno trascorso nel tipo di evento di attesa specifico.
    • Conteggio dei tipi di eventi di attesa. Il numero di volte in cui si è verificato un tipo di evento di attesa specifico nell'intervallo di tempo scelto.
    • %di carico per dimensione del grafico. Il grafico a pillole mostra come la dimensione del grafico selezionata nel menu a discesa del grafico di caricamento del database è distribuita nel tipo di evento di attesa specifico.
    Eventi di attesa La tabella mostra l'elenco dei principali eventi di attesa che si sono verificati durante l'intervallo di tempo selezionato.
    • Tempo medio di attesa (ms). Tempo medio trascorso dalle query nell'evento di attesa specifico.
    • Tempo totale di attesa (ms). Il tempo totale di esecuzione delle query trascorso nello specifico evento di attesa.
    • Conteggio degli eventi di attesa. Il numero di volte in cui si è verificato un evento di attesa specifico nell'intervallo di tempo scelto.
    • %di carico per dimensione del grafico. Il grafico a pillole mostra la distribuzione della dimensione del grafico selezionata nel menu a discesa del grafico di caricamento del database in base all'evento di attesa specifico.
    Database La tabella mostra l'elenco dei principali database che hanno contribuito al carico durante l'intervallo di tempo scelto in tutte le query eseguite.
    • Tempo medio trascorso nel database (ms). Tempo medio trascorso dalle query nel database specifico.
    • Tempo totale trascorso nel database (ms). Il tempo di esecuzione totale delle query nel database specifico.
    • %di carico per dimensione del grafico. Il grafico a pillole mostra come la dimensione del grafico selezionata nel menu a discesa del grafico di caricamento del database è distribuita nel database specifico.
    Utente La tabella mostra l'elenco degli utenti principali per l'intervallo di tempo scelto in tutte le query eseguite.
    • Tempo medio trascorso dall'utente (ms). Tempo medio trascorso dalle query sull'utente specifico.
    • Tempo totale trascorso nell'utente (ms). Il tempo di esecuzione totale trascorso dalle query nell'utente specifico.
    • %di carico per dimensione del grafico. Il grafico a pillole mostra come la dimensione del grafico selezionata nel menu a discesa del grafico di caricamento del database è distribuita tra l'utente specifico.

Visualizzare il tempo di esecuzione della query

Le funzionalità avanzate di Query Insights per AlloyDB mostrano le prime dieci query che contribuiscono al carico del database nella tabella Dimensioni principali per carico del database. La query principale è quella che ha contribuito maggiormente al carico del database per l'intervallo di tempo selezionato. Le query successive sono una percentuale del tempo di esecuzione più lungo.

Per scoprire in che modo il tempo di esecuzione di un parametro nel report Dimensioni principali per carico del database è influenzato dai diversi valori della dimensione del grafico selezionata (query, tipi di eventi di attesa, eventi di attesa, database e utenti), segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Nell'elenco di cluster e istanze, fai clic su un'istanza.

  3. Fai clic su Approfondimenti sulle query.

  4. Scegli il database e l'utente.

  5. Visualizza il % di carico per dimensione del grafico nella tabella Dimensioni massime per carico del database per scoprire in che modo un parametro della tabella è influenzato dai parametri del grafico Carico del database.

    Ad esempio, se selezioni Tutte le query nel grafico Carico del database e fai clic sulla scheda Query nella tabella Dimensioni principali per carico del database, % carico per query mostra un elenco delle query che hanno contribuito maggiormente al carico del database nel database selezionato durante il periodo di tempo specificato.

Visualizzare i dettagli sul tempo di esecuzione della query

Puoi visualizzare i dettagli sul tempo di esecuzione delle query in Altri dettagli, tra cui le dimensioni selezionate nel grafico e nella tabella del carico del database, la definizione di ogni evento di attesa e i dati incapsulati nella categoria Altri.

Altri dettagli mostra anche i dettagli di informazioni complesse che non vengono visualizzate altrove nella schermata dei dettagli della query. Queste informazioni includono la definizione di ogni evento di attesa.

Per visualizzare i dettagli sul tempo di esecuzione della query:

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Nell'elenco di cluster e istanze, fai clic su un'istanza.

  3. Fai clic su Approfondimenti sulle query.

  4. Scegli il database e l'utente.

  5. Nella tabella Dimensioni principali per carico del database, fai clic su Più dettagli per una query.

Le funzionalità avanzate di Query Insights per AlloyDB mostrano le query normalizzate ($1, $2 e così via) per sostituire i valori costanti letterali. Ad esempio:

UPDATE
  "demo_customer"
SET
  "customer_id" = $1::uuid,
  "name" = $2,
  "address" = $3,
  "rating" = $4,
  "balance" = $5,
  "current_city" = $6,
  "current_location" = $7
WHERE
  "demo_customer"."id" = $8

Il valore costante viene ignorato in modo che le informazioni sulle query avanzate possano aggregare query simili e rimuovere eventuali informazioni che consentono l'identificazione personale (PII) che la costante potrebbe mostrare.

Determinare il carico del database per le query normalizzate

Per visualizzare una misura del tempo e dell'utilizzo delle risorse per l'esecuzione delle query (in secondi CPU) che la query normalizzata selezionata ha eseguito nel database selezionato nel tempo, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Nell'elenco di cluster e istanze, fai clic su un'istanza.

  3. Fai clic su Approfondimenti sulle query.

  4. Scegli il database e l'utente.

  5. Fai clic su Query nel grafico Caricamento database. Per calcolare il carico del database, il grafico Carico del database utilizza la quantità di tempo impiegato dalle query normalizzate completate nel limite di un minuto rispetto al tempo reale trascorso.

Nella parte superiore del grafico Caricamento database, vengono visualizzati i primi 10 KB di caratteri della query normalizzata, in cui i valori letterali vengono rimossi per l'aggregazione e per motivi di informazioni che consentono l'identificazione personale (PII).

Per determinare la distribuzione del tempo trascorso in ciascuno di questi stati, le funzionalità avanzate di Query Insights per AlloyDB distribuiscono i carichi di query normalizzati in eventi di attesa e tipi di eventi di attesa.

Puoi studiare la latenza delle query utilizzando i grafici Latenza. La latenza è il tempo impiegato dalla query normalizzata per il completamento in tempo reale trascorso. La latenza delle query parallele viene misurata in tempo reale trascorso, anche se il carico database può essere superiore per la query a causa dell'utilizzo di core multipli per l'esecuzione di una parte della query.

Puoi filtrare per percentile per visualizzare il 50°, 95° o 99° percentile per rilevare le query che non rispettano il tempo di esecuzione previsto. Per analizzare la latenza storica della query normalizzata, modifica la finestra temporale.

Analizza le query normalizzate

I piani di query consentono di comprendere e analizzare le query normalizzate mediante una suddivisione delle diverse operazioni in una query di esempio.

Il piano di query di esempio fornisce una visualizzazione EXPLAIN ANALYZE per gli esempi di piano di query correlati alla query normalizzata. Questi sono piani di query eseguiti che forniscono una suddivisione del tempo attivo impiegato da ogni operazione nel piano di query.

Per visualizzare un piano di query di esempio:

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Nell'elenco di cluster e istanze, fai clic su un'istanza.

  3. Fai clic su Approfondimenti sulle query.

  4. Scegli il database e l'utente.

  5. Scegli il tempo di esecuzione totale per il quale vuoi visualizzare i dati, ad esempio 1 o 6 ore oppure un tempo personalizzato.

  6. Nella tabella Dimensioni massime per carico del database, fai clic su una query.

  7. In Esempi di piano di query, fai clic su uno dei punti del grafico per visualizzare un piano di query per quella query.

Monitorare e risolvere i problemi relativi alle prestazioni delle applicazioni utilizzando i tag

Gli approfondimenti avanzati sulle query forniscono un monitoraggio incentrato sulle applicazioni e semplificano la diagnosi delle prestazioni delle applicazioni create con il mapping relazionale degli oggetti (ORM). Il tagging delle query ti aiuta a trovare problemi in costrutti di livello superiore, ad esempio l'utilizzo della logica di business, di un microservizio o di un altro costrutto. Puoi utilizzare i tag nella tua applicazione per:

  • Monitora il rendimento del database.
  • Utilizza Sqlcommenter per identificare i problemi di prestazioni causati dal codice dell'applicazione.
  • Analizza il carico del database.
  • Visualizza il carico per tag.

Per scoprire come utilizzare i tag in Query Insights, consulta Migliorare le prestazioni delle query utilizzando Query Insights.

Risolvere i problemi delle applicazioni a livello di database

Query Insights avanzato fornisce una visualizzazione della traccia end-to-end in contesto per aiutarti a comprendere i problemi dell'applicazione a livello di database per una richiesta specifica. Le tracce end-to-end delle applicazioni nel contesto ti aiutano a determinare l'origine della query problematica, ad esempio per modello, visualizzazione, controller e route.

Quando abiliti OpenTelemetry, le informazioni sullo span vengono inviate al database insieme alle informazioni sui tag all'interno dei commenti SQL. Le tracce dall'applicazione a Cloud Logging sono collegate alle tracce del piano di query del database per identificare l'origine del problema.

Per visualizzare una traccia contestuale, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Nell'elenco di cluster e istanze, fai clic su un'istanza.

  3. Fai clic su Approfondimenti sulle query.

  4. Scegli il database e l'utente.

  5. Fai clic su una voce qualsiasi nella tabella Dimensioni massime per carico del database.

  6. Nella pagina Dettagli approfondimenti query, fai clic su END-TO-END.

Puoi anche utilizzare Cloud Trace per visualizzare la tracciabilità end-to-end di ogni passaggio del piano di query. Per accedere a Cloud Trace, seleziona Operations > Trace.

Domande frequenti

Questa sezione fornisce risposte alle domande frequenti sulle funzionalità avanzate di Query Insights.

Perché la stringa di query è troncata?

Per impostazione predefinita, Query Insights avanzato mostra 10 KB nelle stringhe di query. Puoi aumentare la visualizzazione fino a 100 kB.

Perché il carico della CPU è superiore alla linea del core massimo nel grafico Carico database?

Il carico della CPU tiene conto sia del tempo di esecuzione sia del tempo di attesa dello scheduler Linux per pianificare l'esecuzione del processo del server, pertanto il carico della CPU può superare la linea del core massimo.

Posso utilizzare le metriche standard di approfondimento delle query?

Sì. Gli approfondimenti sulle query standard generano contatori a cui è possibile accedere tramite Stackdriver. Queste metriche sono disponibili tramite l'API Cloud Monitoring e l'interfaccia utente di Metrics Explorer. Per ulteriori informazioni, consulta le metricheGoogle Cloud .

Qual è la lunghezza massima della stringa di query?

Per il plug-in standard Query Insights, la lunghezza massima della stringa di query è limitata a 4,5 kB. Per le informazioni avanzate sulle query, la lunghezza predefinita della stringa è 10 kB e la lunghezza massima è limitata a 100 kB.

Posso utilizzare le funzionalità avanzate di Query Insights con i cluster secondari?

Non puoi attivare Query Insights avanzato sui cluster con istanze secondarie. Prima di creare un'istanza secondaria su un cluster, devi disattivare Query Insights avanzato su tutte le istanze del cluster.

Passaggi successivi