Utilizzare gli approfondimenti sulle query per migliorare le prestazioni delle query

Questa pagina descrive come utilizzare la dashboard di Query Insights per rilevare e analizzare i problemi di prestazioni delle query.

Introduzione

Query Insights consente di rilevare, diagnosticare e prevenire i problemi di prestazioni delle query per i database Cloud SQL. Supporta il monitoraggio intuitivo e fornisce informazioni diagnostiche che non si limitano al rilevamento per identificare la causa principale dei problemi di prestazioni.

Con Query Insights, puoi monitorare le prestazioni a livello di applicazione e rintracciare l'origine di una query problematica nello stack dell'applicazione per modello, visualizzazione, controller, route, utente e host. Lo strumento Query Insights può integrarsi con i tuoi strumenti e servizi di monitoraggio delle applicazioni (APM) esistenti utilizzando API e standard aperti. Google CloudIn questo modo, puoi monitorare e risolvere i problemi relativi alle query utilizzando il tuo strumento preferito.

Query Insights ti aiuta a migliorare le prestazioni delle query Cloud SQL guidandoti attraverso i seguenti passaggi:

Query Insights per Cloud SQL Enterprise Plus

Se utilizzi la versione Cloud SQL Enterprise Plus, puoi accedere a funzionalità aggiuntive in Query Insights per eseguire la diagnostica avanzata delle prestazioni delle query. Oltre alle funzionalità standard della dashboard di Query Insights, Query Insights per Cloud SQL Enterprise Plus consente di:

  • Acquisisci e analizza gli eventi di attesa per tutte le query eseguite.
  • Filtra il carico aggregato del database in base a dimensioni aggiuntive, come query, tag, tipi di eventi di attesa e altro ancora.
  • Acquisisci i piani di query per tutte le query eseguite.
  • Campiona fino a 200 piani di query al minuto.
  • Acquisisci un testo di query più lungo fino a 100 kB.
  • Ottenere aggiornamenti quasi in tempo reale per le metriche (nell'ordine di secondi).
  • Mantenere una conservazione delle metriche più lunga, di 30 giorni.
  • Ottenere suggerimenti sull'indicizzazione da Index Advisor.
  • Termina una sessione o una transazione a lunga esecuzione nelle query attive.
  • Accedi alla risoluzione dei problemi assistita dall'AI (anteprima).

La tabella seguente mette a confronto i requisiti e le funzionalità di Query Insights per la versione Cloud SQL Enterprise con Query Insights per la versione Cloud SQL Enterprise Plus.

Area di confronto Query Insights per la versione Cloud SQL Enterprise Query Insights per Cloud SQL Enterprise Plus
Versioni del database supportate PostgreSQL 9.6 o versioni successive PostgreSQL 12 o versioni successive
Tipi di macchine supportati Supportato su tutti i tipi di macchine Non supportato su istanze che utilizzano un tipo di macchina con core condivisi o su istanze di replica di lettura
Regioni supportate Località regionali di Cloud SQL Località regionali della versione Cloud SQL Enterprise Plus
Periodo di conservazione delle metriche 7 giorni 30 giorni
Limite massimo di lunghezza della query 4500 byte 100 kB
Numero massimo di esempi di piano di query 20 200
Analisi evento di attesa Non disponibile Disponibile
Suggerimenti di Index Advisor Non disponibile Disponibile
Termina le sessioni o le transazioni di lunga durata nelle query attive Non disponibile Disponibile
Risoluzione dei problemi assistita dall'AI (anteprima) Non disponibile Disponibile
Limiti di cardinalità delle query Riporta le statistiche aggregate per un massimo di 100 query principali con una combinazione di indirizzi IP client, database, tag dell'applicazione, nomi utente e testo della query al giorno. Riporta le statistiche aggregate per un massimo di 4000 query principali con una combinazione di tag dell'applicazione, database, nomi utente e ID query al minuto.

Abilita Query Insights per la versione Cloud SQL Enterprise Plus

Per abilitare Query Insights per la versione Cloud SQL Enterprise Plus, seleziona Abilita le funzionalità Enterprise Plus quando abiliti Query Insights nell'istanza della versione Cloud SQL Enterprise Plus.

Prezzi

Non sono previsti costi aggiuntivi per Query Insights sulle istanze della versione Cloud SQL Enterprise o Cloud SQL Enterprise Plus.

Requisiti di spazio di archiviazione

Query Insights per la versione Cloud SQL Enterprise non occupa spazio di archiviazione nell'istanza Cloud SQL. Le metriche vengono archiviate in Cloud Monitoring. Per le richieste API, consulta i prezzi di Cloud Monitoring. Cloud Monitoring ha un livello che puoi utilizzare senza costi aggiuntivi.

Query Insights per Cloud SQL Enterprise Plus Edition archivia i dati delle metriche sullo stesso disco collegato alla tua istanza Cloud SQL e richiede che l'impostazione degli aumenti automatici dello spazio di archiviazione sia abilitata.

Il requisito di archiviazione per sette giorni di dati è di circa 36 GB. Per 30 giorni, sono necessari circa 155 GB. Query Insights per la versione Cloud SQL Enterprise Plus utilizza fino a 10 MB di RAM (memoria condivisa). Le metriche dovrebbero essere disponibili in Query Insights entro 30 secondi dal completamento della query. Si applicano le tariffe di archiviazione applicabili.

Limitazioni

Le seguenti limitazioni si applicano a Query Insights per le istanze della versione Cloud SQL Enterprise Plus:

  • Se l'istanza è sottoposta a un carico di sistema elevato, quando esegui query sui dati delle metriche nella dashboard Query Insights, il caricamento delle query potrebbe essere lento o scadere.
  • Quando ripristini un'istanza di Query Insights per Cloud SQL Enterprise Plus da un backup precedente, potresti perdere le metriche raccolte tra il momento in cui è stato eseguito il backup e il momento in cui ripristini l'istanza. Ad esempio, se ripristini l'istanza il 30 aprile con un backup eseguito il 25 aprile, potresti perdere tutte le metriche tra il 25 e il 30 aprile.
  • Se l'istanza utilizza PostgreSQL 18 ed esegue una versione di manutenzione precedente a 20260319.00_RC02 e la query contiene tag di commento prima dell'inizio dell'istruzione SQL, i tag dell'applicazione potrebbero non essere archiviati quando utilizzi Query Insights. Questa limitazione si applica alle istanze delle versioni Cloud SQL Enterprise Plus e Cloud SQL Enterprise.

Prima di iniziare

Prima di utilizzare Query Insights, segui questi passaggi.

  1. Aggiungi i ruoli e le autorizzazioni richiesti.
  2. Abilita l'API Cloud Trace.
  3. Se utilizzi Query Insights per Cloud SQL Enterprise Plus, assicurati che l'opzione Abilita gli aumenti automatici dello spazio di archiviazione sia abilitata per l'istanza.

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per accedere ai dati storici di esecuzione delle query nella dashboard di Query Insights, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto che ospita l'istanza Cloud SQL:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Abilita l'Cloud Trace API

Per visualizzare i piani di query e le relative visualizzazioni end-to-end, nel tuo progetto Google Cloud deve essere abilitata l'Cloud Trace API. Questa impostazione consente al tuo progettoGoogle Cloud di ricevere dati di traccia da origini autenticate senza costi aggiuntivi. Questi dati possono aiutarti a rilevare e diagnosticare problemi di prestazioni nell'istanza.

Per verificare che lCloud Trace API sia abilitata, segui questi passaggi:

  1. Nella console Google Cloud , vai ad API e servizi:

    Vai ad API e servizi

  2. Fai clic su Abilita API e servizi.
  3. Nella barra di ricerca, inserisci Cloud Trace API.
  4. Se viene visualizzato API abilitata, l'API è abilitata e non devi fare nulla. Altrimenti, fai clic su Abilita.

Abilita aumenti automatici dello spazio di archiviazione

Se utilizzi Query Insights per Cloud SQL Enterprise Plus, assicurati che l'impostazione dell'istanza per abilitare gli aumenti automatici dello spazio di archiviazione rimanga abilitata. Per impostazione predefinita, questa opzione è abilitata per le istanze Cloud SQL.

Se in precedenza hai disabilitato questa impostazione dell'istanza e vuoi attivare Query Insights per Cloud SQL Enterprise Plus, devi prima riattivare gli aumenti automatici dello spazio di archiviazione. Non puoi disattivare gli aumenti automatici dello spazio di archiviazione e attivare Query Insights per la versione Cloud SQL Enterprise Plus.

Abilita Query Insights

Prima di abilitare Query Insights, tieni presente i seguenti requisiti di riavvio:

  • Se l'istanza è in esecuzione con la versione di manutenzione di PostgreSQL 20250302.00_RC30 o precedente e abiliti Query Insights per Cloud SQL Enterprise Plus, l'istanza viene riavviata. Potrebbero essere necessari diversi minuti prima che l'istanza torni disponibile. Di conseguenza, tutte le altre operazioni vengono temporaneamente sospese, tra cui:

    • Controlli di integrità
    • Logging
    • Monitoraggio
    • Altre operazioni sulle istanze
  • Se l'istanza esegue la versione di manutenzione di PostgreSQL 20250302.00_RC31 o versioni successive e attivi Query Insights, non è necessario un riavvio e le operazioni dell'istanza rimangono disponibili.

  • Il monitoraggio dell'IP client non è supportato per le istanze con il pool di connessioni gestito abilitato. Se l'istanza utilizza il pool di connessioni gestite, gli indirizzi IP client per le porte 3307 e 6432 vengono visualizzati come local.

Console

Abilita Query Insights per un'istanza

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Nel riquadro Configurazione, fai clic su Modifica configurazione.
  4. Nella sezione Personalizza la tua istanza, espandi Query Insights.
  5. Seleziona la casella di controllo Abilita Query Insights.
  6. (Facoltativo) Seleziona funzionalità aggiuntive per l'istanza. Alcune funzionalità sono disponibili solo per la versione Cloud SQL Enterprise Plus.
  7. Funzionalità Descrizione Cloud SQL Enterprise edition Versione Cloud SQL Enterprise Plus
    Abilita le funzionalità di Enterprise Plus Seleziona questa casella di controllo per abilitare Query Insights per la versione Cloud SQL Enterprise Plus in Cloud SQL. Query Insights per Cloud SQL Enterprise Plus ti consente di terminare le sessioni e le transazioni a lunga esecuzione nelle query attive e aumenta la conservazione dei dati delle metriche a 30 giorni. Devi selezionare questa casella di controllo per attivare la risoluzione dei problemi assistita dall'AI (anteprima). Non disponibile Disponibile

    Impostazione predefinita: disattivata
    Analisi query attiva Consente di esaminare i dettagli delle query in esecuzione. Se abilitato nella versione Cloud SQL Enterprise Plus, puoi anche terminare le sessioni e le transazioni a lunga esecuzione. Seleziona questa casella di controllo per attivare le query attive per l'istanza Cloud SQL per PostgreSQL. Per saperne di più, consulta Monitora le query attive. Disponibile

    Impostazione predefinita: disattivata
    Disponibile

    Impostazione predefinita: disattivata
    Suggerimenti di Index Advisor Fornisce suggerimenti sull'indicizzazione per accelerare l'elaborazione delle query. Per saperne di più, consulta Utilizza Index Advisor. Se l'istanza è in esecuzione con la versione di manutenzione di PostgreSQL "20250302.00_RC30" o precedente e attivi Index Advisor, l'istanza viene riavviata. Se disattivi Index Advisor, non è necessario riavviare l'istanza. Non disponibile Disponibile

    Valore predefinito: disabilitato
    Risoluzione dei problemi assistita dall'AI Seleziona questa casella di controllo per abilitare il rilevamento di anomalie delle prestazioni, l'analisi delle cause principali e della situazione e per ottenere suggerimenti per la risoluzione dei problemi relativi alle query e al database. Questa funzionalità è in anteprima e puoi attivarla e accedervi solo utilizzando la console Google Cloud . Per saperne di più, consulta Osserva e risolvi i problemi con l'assistenza AI. Non disponibile Disponibile

    Valore predefinito: disattivato
    Archivia gli indirizzi IP client Seleziona questa casella di controllo per attivare l'archiviazione degli indirizzi IP client. Cloud SQL può archiviare gli indirizzi IP da cui provengono le query e consentirti di raggruppare i dati per generare le metriche corrispondenti. Le query provengono da più host. L'esame dei grafici per le query provenienti da indirizzi IP client può aiutare a identificare l'origine di un problema. Disponibile

    Valore predefinito: disabilitato
    Disponibile

    Valore predefinito: disattivato
    Archivia i tag delle applicazioni Seleziona questa casella di controllo per attivare l'archiviazione dei tag dell'applicazione. L'archiviazione dei tag delle applicazioni ti aiuta a determinare le API e le route model-view-controller (MVC) che effettuano richieste e a raggruppare i dati per eseguire metriche su di essi. Questa opzione richiede di commentare le query con un insieme specifico di tag utilizzando la libreria di strumentazione automatica ORM (Object-Relational Mapping) open source sqlcommenter. Queste informazioni aiutano Query Insights a identificare l'origine di un problema e l'MVC da cui proviene. I percorsi delle applicazioni ti aiutano con il monitoraggio delle applicazioni. Disponibile

    Impostazione predefinita: disabilitata
    Disponibile

    Impostazione predefinita: disabilitata
    Personalizza la lunghezza delle query Seleziona questa casella di controllo per personalizzare il limite per la lunghezza di una stringa di query. Se le query hanno una lunghezza maggiore, sono più utili per le query analitiche, ma richiedono anche più memoria. Qualsiasi stringa di query che supera il limite specificato viene troncata nella visualizzazione.

    Se esegui la versione di manutenzione di PostgreSQL 20250302.00_RC31 o versioni successive, non è necessario riavviare l'istanza quando modifichi il limite di lunghezza delle query. Puoi comunque aggiungere tag alle query che superano il limite di lunghezza.
    Puoi impostare il limite in byte da 256 byte a 4500 byte.

    Valore predefinito: 1024.
    Puoi specificare un limite in byte compreso tra 1024 e 100000.



    Valore predefinito: 10000 byte.

    Imposta la frequenza di campionamento massima Seleziona questa casella di controllo per impostare la frequenza di campionamento massima. La frequenza di campionamento è il numero di campioni di piano di query eseguiti che vengono acquisiti al minuto su tutti i database dell'istanza. È probabile che l'aumento della frequenza di campionamento fornisca più punti dati, ma potrebbe incrementare l'overhead delle prestazioni. Per disattivare il campionamento, imposta il valore su 0. Modifica questo valore scegliendo un numero compreso tra 0 e 20.

    Valore predefinito: 5.
    Puoi aumentare il numero massimo a 200 per fornire più punti dati.

    Valore predefinito: 200
  8. Fai clic su Salva.

Abilita Query Insights per più istanze

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Fai clic sul menu Altre azioni in qualsiasi riga.
  3. Seleziona Abilita Query Insights.
  4. Nella finestra di dialogo, seleziona la casella di controllo Abilita Query Insights per più istanze.
  5. Fai clic su Attiva.
  6. Nella finestra di dialogo successiva, seleziona le istanze per cui vuoi abilitare Query Insights.
  7. Fai clic su Abilita Query Insights.

gcloud

Per abilitare Query Insights per un'istanza Cloud SQL utilizzando gcloud, esegui gcloud sql instances patch con il flag --insights-config-query-insights-enabled come segue dopo aver sostituito INSTANCE_ID con l'ID dell'istanza.

    gcloud sql instances patch INSTANCE_ID \
    --insights-config-query-insights-enabled
  

Inoltre, utilizza uno o più dei seguenti flag facoltativi:

  • --insights-config-record-client-address

    Memorizza gli indirizzi IP client da cui provengono le query e ti aiuta a raggruppare i dati su cui eseguire metriche. Le query provengono da più host. L'esame dei grafici per le query provenienti da indirizzi IP client può aiutare a identificare l'origine di un problema.

  • --insights-config-record-application-tags

    Archivia i tag delle applicazioni che ti aiutano a determinare le API e le route model-view-controller (MVC) che effettuano richieste e raggruppa i dati per eseguire metriche su di essi. Questa opzione richiede di commentare le query con un insieme specifico di tag. Per farlo, utilizza la libreria di strumentazione automatica ORM (Object-Relational Mapping) open source sqlcommenter. Queste informazioni aiutano Query Insights a identificare l'origine di un problema e l'MVC da cui proviene. I percorsi delle applicazioni ti aiutano a monitorare le applicazioni.

  • --insights-config-query-string-length

    Imposta il limite predefinito per la lunghezza delle query. Se le query hanno una lunghezza maggiore, sono più utili per le query analitiche, ma richiedono anche più memoria. Se esegui la versione di manutenzione di PostgreSQL 20250302.00_RC31 o successive, non è necessario riavviare l'istanza quando modifichi il limite di lunghezza delle query. Puoi comunque aggiungere tag alle query che superano il limite di lunghezza. Per la versione Cloud SQL Enterprise, puoi specificare un valore in byte compreso tra 256 e 4500. La lunghezza predefinita della query è 1024 byte. Per la versione Cloud SQL Enterprise Plus, puoi specificare un limite in byte compreso tra 1024 e 100000. Il valore predefinito è 10000 byte.

  • --insights-config-query-plans-per-minute

    Per impostazione predefinita, vengono acquisiti un massimo di cinque campioni di piano di query eseguiti al minuto su tutti i database dell'istanza. È probabile che l'aumento della frequenza di campionamento fornisca più punti dati, ma potrebbe incrementare l'overhead delle prestazioni. Per disattivare il campionamento, imposta questo valore su 0. Per la versione Cloud SQL Enterprise, puoi modificare il valore da 0 a 20. Per la versione Cloud SQL Enterprise Plus, puoi aumentare il valore massimo fino a 200 per fornire più punti dati. Per impostazione predefinita, la frequenza di campionamento massima è di 200 campioni di piano di query al minuto su tutti i database dell'istanza.

Sostituisci quanto segue:

gcloud sql instances patch INSTANCE_ID \
--insights-config-query-insights-enabled \
--insights-config-query-string-length=INSIGHTS_CONFIG_QUERY_STRING_LENGTH \
--insights-config-query-plans-per-minute=QUERY_PLANS_PER_MINUTE \
--insights-config-record-application-tags \
--insights-config-record-client-address \
--tier=API_TIER_STRING \
--region=REGION
  

REST v1

Per abilitare Query Insights per un'istanza Cloud SQL utilizzando l'API REST, chiama il metodo instances.patch con le impostazioni insightsConfig.

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

  • PROJECT_ID: l'ID progetto
  • INSTANCE_ID: l'ID istanza

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Corpo JSON della richiesta:

{
  "settings" : {
     "insightsConfig" : {
       "queryInsightsEnabled" : true,
       "recordClientAddress" : true,
       "recordApplicationTags" : true,
       "queryStringLength" : 1024,
       "queryPlansPerMinute" : 20,
   }
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2025-03-28T22:43:40.009Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

Per utilizzare Terraform per abilitare Query Insights per un'istanza Cloud SQL, imposta il flag query_insights_enabled su true.

Inoltre, puoi utilizzare uno o più dei seguenti flag facoltativi:

  • query_string_length: per la versione Cloud SQL Enterprise, puoi specificare un valore in byte compreso tra 256 e 4500. La lunghezza predefinita della query è 1024 byte. Per la versione Cloud SQL Enterprise Plus, puoi specificare un limite in byte compreso tra 1024 e 100000. Il valore predefinito è 10000 byte.
  • record_application_tags: imposta il valore su true se vuoi registrare i tag dell'applicazione dalla query.
  • record_client_address: imposta il valore su true se vuoi registrare l'indirizzo IP client. Il valore predefinito è false.
  • query_plans_per_minute: per la versione Cloud SQL Enterprise, puoi impostare il valore da 0 a 20. Il valore predefinito è 5. Per la versione Cloud SQL Enterprise Plus, puoi aumentare il valore massimo fino a 200 per fornire più punti dati. La frequenza di campionamento massima predefinita è di 200 campioni di piano di query al minuto su tutti i database dell'istanza.

Ecco un esempio:

  resource "google_sql_database_instance" "INSTANCE_NAME" {
  name                = "INSTANCE_NAME"
  database_version    = "POSTGRESQL_VERSION"
  region              = "REGION"
  root_password       = "PASSWORD"
  deletion_protection = false # set to true to prevent destruction of the resource
  settings {
    tier = "DB_TIER"
    insights_config {
      query_insights_enabled  = true
      query_string_length     = 2048 # Optional
      record_application_tags = true # Optional
      record_client_address   = true # Optional
      query_plans_per_minute  = 10 # Optional
    }
  }
  }
  

Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.

    Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file è denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel file main.tf appena creato.

    Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
    terraform init

    Facoltativamente, per utilizzare l'ultima versione del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Esamina la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione Terraform eseguendo il comando seguente e inserendo yes al prompt:
    terraform apply

    Attendi finché Terraform non visualizza il messaggio "Apply complete!".

  3. Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.

Le metriche dovrebbero essere disponibili in Query Insights entro pochi minuti dal completamento della query. Consulta le policy sulla conservazione dei dati di Cloud Monitoring.

Le tracce di Query Insights vengono archiviate in Cloud Trace. Consulta le policy sulla conservazione dei dati di Cloud Trace.

Visualizza la dashboard di Query Insights

La dashboard di Query Insights mostra il carico delle query in base ai fattori che selezioni. Il carico delle query è una misura del lavoro totale per tutte le query nell'istanza nell'intervallo di tempo selezionato. La dashboard fornisce una serie di filtri che ti aiutano a visualizzare il carico delle query.

Per aprire la dashboard di Query Insights, segui questi passaggi:

  1. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  2. Nel menu di navigazione di Cloud SQL, fai clic su Query Insights o su Vai a Query Insights per informazioni più approfondite su query e prestazioni nella pagina Panoramica dell'istanza.
  3. Viene visualizzata la dashboard Query Insights. A seconda che tu stia utilizzando Query Insights per la versione Cloud SQL Enterprise o Query Insights per la versione Cloud SQL Enterprise Plus, la dashboard di Query Insights mostra le seguenti informazioni sull'istanza:

Versione Cloud SQL Enterprise Plus

Mostra la dashboard di Query Insights per la versione Enterprise Plus con menu per filtrare in base a database, utente e indirizzo client.
          Puoi anche filtrare in base a un intervallo di tempo di 1 ora, 6 ore, 1 giorno, 30 giorni o selezionare un intervallo di tempo personalizzato. Questo grafico mostra il carico del database in base al tempo di esecuzione in millisecondi per tutte le query in un periodo di un'ora.
  • Tutte le query: mostra il carico del database per tutte le query per l'intervallo di tempo selezionato. Ogni query è codificata con un colore specifico. Per visualizzare un momento specifico per una query specifica, tieni il puntatore sopra il grafico della query.
  • Database: filtra il carico delle query su un database specifico o su tutti i database.
  • Utente: filtra il carico di query di un account utente specifico.
  • Indirizzo client: filtra il carico delle query da un indirizzo IP specifico.
  • Intervallo di tempo: filtra il carico delle query in base a intervalli di tempo, ad esempio 1 ora, 6 ore, 1 giorno, 7 giorni, 30 giorni o un intervallo personalizzato.
  • Tipi di eventi di attesa: filtra il carico delle query in base ai tipi di eventi di attesa della CPU e del blocco.
  • Query, Tipi di eventi di attesa, Database, Utenti, Tag e Indirizzi client: ordina in base alle dimensioni principali che contribuiscono maggiormente al carico del database nel grafico. Consulta Filtra il carico del database.

Cloud SQL Enterprise edition

Mostra la dashboard di Query Insights, con menu a discesa per database, utenti e indirizzi. A destra dei menu a discesa è presente un filtro per impostare un intervallo di tempo. Inoltre, un grafico mostra il carico del database per le query principali. Nella parte inferiore del grafico sono presenti caselle di selezione per Capacità CPU, CPU e Attesa CPU, Attesa I/O e Attesa blocco, oltre a una scheda per le query e una per i tag.
  • Database: filtra il carico delle query su un database specifico o su tutti i database.
  • Utente: filtra il carico di query di un account utente specifico.
  • Indirizzo client: filtra il carico delle query da un indirizzo IP specifico.
  • Intervallo di tempo: filtra il carico delle query in base a intervalli di tempo, ad esempio 1 ora, 6 ore, 1 giorno, 7 giorni, 30 giorni o un intervallo personalizzato.
  • Grafico del carico del database: visualizza il grafico del carico delle query in base ai dati filtrati.
  • Capacità CPU, CPU e Attesa CPU, Attesa IO e Attesa blocco: filtra i carichi in base alle opzioni selezionate. Per informazioni dettagliate su ciascuno di questi filtri, consulta Visualizza il carico del database per le query principali.
  • Query e Tag: filtra il carico delle query in base a una query selezionata o a un tag di query SQL selezionato. Consulta Filtra il carico del database.

Visualizza il carico del database per tutte le query

Il carico delle query del database è una misura del lavoro (in secondi CPU) che le query eseguite nel database selezionato svolgono nel tempo. Ogni query in esecuzione utilizza o è in attesa di risorse CPU, risorse I/O o risorse di blocco. Il carico delle query del database è il rapporto tra il tempo impiegato da tutte le query completate in un determinato intervallo di tempo e il tempo reale.

La dashboard di primo livello di Query Insights mostra il grafico Carico del database - Tutte le query principali. I menu a discesa della dashboard consentono di filtrare il grafico per un database, un utente o un indirizzo client specifico.

Versione Cloud SQL Enterprise Plus

Mostra il grafico del carico del database con un carico per la capacità della CPU, la CPU e l'attesa della CPU, l'attesa di I/O e l'attesa di blocco.

Cloud SQL Enterprise edition

Mostra il grafico del carico del database con un carico per la capacità della CPU, la CPU e l'attesa della CPU, l'attesa di I/O e l'attesa di blocco.

Le linee colorate nel grafico mostrano il carico delle query, suddiviso in categorie:

  • Capacità CPU: il numero di CPU disponibili nell'istanza.
  • CPU e Attesa CPU: il rapporto tra il tempo impiegato dalle query in uno stato attivo e il tempo reale. Le attese di I/O e di blocco non bloccano le query in stato attivo. Questa metrica potrebbe indicare che la query sta utilizzando la CPU o è in attesa che lo scheduler Linux pianifichi il processo del server che esegue la query mentre altri processi utilizzano la CPU.
  • Attesa I/O: il rapporto tra il tempo impiegato dalle query in attesa di I/O e il tempo reale. L'attesa I/O include l'attesa I/O di lettura e l'attesa I/O di scrittura. Se vuoi una suddivisione delle informazioni per le attese di I/O, puoi visualizzarla in Cloud Monitoring. Per saperne di più, consulta Metriche di Cloud SQL. Per saperne di più, consulta la tabella degli eventi di PostgreSQL.
  • Attesa blocco: il rapporto tra il tempo impiegato dalle query in attesa di blocchi e il tempo reale. Include Attese blocco, Attese LwLock e Attese blocco pin buffer. Per visualizzare una suddivisione delle informazioni per le attese di blocco, utilizza Cloud Monitoring. Per saperne di più, consulta Metriche di Cloud SQL.

Le linee colorate nel grafico mostrano il carico per database in base al tempo di esecuzione. Esamina il grafico e utilizza le opzioni di filtro per esplorare queste domande:

  • Il carico delle query è elevato? Il grafico mostra picchi o valori elevati nel tempo? Se non vedi un carico elevato, il problema non è la query.
  • Da quanto tempo il carico è elevato? È alta solo ora o è alta da molto tempo? Utilizza il selettore dell'intervallo per selezionare vari periodi di tempo e scoprire da quanto tempo persiste il problema. Aumenta lo zoom per visualizzare una finestra temporale in cui si osservano picchi di carico delle query. Diminuisci lo zoom per visualizzare fino a una settimana della sequenza temporale.
  • Qual è la causa del carico elevato? Puoi selezionare le opzioni per esaminare la capacità della CPU, la CPU e l'attesa della CPU, l'attesa del blocco o l'attesa di I/O. Il grafico per ciascuna di queste opzioni ha un colore diverso, in modo da poter individuare quella con il carico più elevato. La linea blu scuro sul grafico mostra la capacità massima della CPU del sistema. Ti consente di confrontare il carico delle query con la capacità massima della CPU del sistema. Questo confronto ti aiuta a determinare se un'istanza sta esaurendo le risorse della CPU.
  • Quale database sta riscontrando il carico? Seleziona database diversi dal menu a discesa Database per trovare quelli con i carichi più elevati.
  • Utenti o indirizzi IP specifici causano carichi più elevati? Seleziona utenti e indirizzi diversi dai menu a discesa per identificare quelli che causano carichi più elevati.

Filtra il carico del database

Puoi filtrare il carico del database in base a query o tag. Se utilizzi Query Insights per Cloud SQL Enterprise Plus, puoi personalizzare il grafico del carico del database per suddividere i dati visualizzati utilizzando una delle seguenti dimensioni:

  • Tutte le query

  • Tipi di eventi di attesa

  • Eventi di attesa

  • Database

  • Utenti

  • Tag

  • Indirizzi client

Per personalizzare il grafico del carico del database, seleziona una dimensione dal menu a discesa Carico database per tempo di esecuzione.

Visualizza i principali fattori che contribuiscono al carico del database

Per visualizzare i principali fattori che contribuiscono al carico del database, puoi utilizzare la tabella Dimensioni massime per carico del database. La tabella Dimensioni principali per carico del database mostra i principali fattori che contribuiscono al periodo di tempo e alla dimensione selezionati nel menu a discesa del grafico Carico del database per tempo di esecuzione. Puoi modificare il periodo di tempo o la dimensione per visualizzare i principali fattori che contribuiscono a una dimensione o a un periodo di tempo diversi.

Nella tabella Dimensioni principali per carico di dati, puoi selezionare le seguenti schede.

Tab 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 di seguito:
  • Tempo di esecuzione medio (ms): tempo medio di esecuzione della query.
    • L'elenco delle voci nella colonna Tempo di esecuzione medio (ms) potrebbe non essere esaustivo. Ad esempio, se una query eseguita da un utente specifico è la causa di un carico elevato del database e se questo comportamento non è rappresentativo del comportamento medio dell'utente, la voce per la query dell'utente potrebbe non essere inclusa.
  • Tempo totale di esecuzione (ms): il tempo totale di esecuzione impiegato dalla query specifica.
  • Media 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 SELECTED_DIMENSION: il grafico a linee della percentuale mostra come viene distribuita la dimensione selezionata 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 il periodo di tempo selezionato. Questa tabella è disponibile solo per Query Insights per la versione Cloud SQL Enterprise Plus.
  • Tempo medio di attesa (ms): tempo medio trascorso dalle query nel tipo di evento di attesa specifico.
  • Tempo totale di attesa (ms): il tempo di esecuzione totale delle query 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 nel periodo di tempo selezionato.
  • %di carico per SELECTED_DIMENSION: il grafico a linee della percentuale mostra come la dimensione selezionata per il grafico del carico del database è distribuita per il tipo di evento di attesa specifico.
Eventi di attesa La tabella mostra l'elenco dei principali eventi di attesa che si sono verificati durante il periodo di tempo selezionato. Questa tabella è disponibile solo per Query Insights per la versione Cloud SQL Enterprise Plus.
  • Tempo medio di attesa (ms): tempo medio trascorso dalle query nello specifico evento di attesa.
  • Tempo totale di attesa (ms): il tempo di esecuzione totale delle query trascorso nell'evento di attesa specifico.
  • Conteggio eventi di attesa: il numero di volte in cui si è verificato un tipo di evento di attesa specifico nel periodo di tempo selezionato.
  • %di carico per SELECTED_DIMENSION: il grafico a linee della percentuale mostra come viene distribuita la dimensione selezionata per il grafico del carico del database per l'evento di attesa specifico.
Database La tabella mostra l'elenco dei database principali che hanno contribuito al carico durante il periodo 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 SELECTED_DIMENSION: il grafico a linee della percentuale mostra come la dimensione selezionata per il grafico del carico del database è distribuita nel database specifico.
Utenti La tabella mostra l'elenco degli utenti principali per il periodo di tempo selezionato in tutte le query eseguite.
  • Tempo medio trascorso nell'utente (ms): tempo medio impiegato dalle query per l'utente specifico.
  • Tempo totale trascorso nell'utente (ms): il tempo di esecuzione totale delle query trascorso nell'utente specifico.
  • %di carico per SELECTED_DIMENSION: il grafico a linee della percentuale mostra come la dimensione selezionata per il grafico del carico del database è distribuita tra l'utente specifico.
Tag Per informazioni sui tag, consulta Filtra per tag di query.
Indirizzi client La tabella mostra l'elenco degli utenti principali per il periodo di tempo selezionato in tutte le query eseguite.
  • Tempo totale trascorso nell'indirizzo client (ms): il tempo di esecuzione totale impiegato dalle query per un client specifico.
  • %di carico per SELECTED_DIMENSION: il grafico a linee della percentuale mostra come la dimensione selezionata per il grafico del carico del database è distribuita nel client specifico.

Filtra per query

La tabella Dimensioni massime per carico del database fornisce una panoramica delle query che generano il carico di query più elevato. La tabella mostra tutte le query normalizzate per l'intervallo di tempo e le opzioni selezionate nella dashboard di Query Insights. Ordina le query in base al tempo di esecuzione totale nell'intervallo di tempo selezionato.

Versione Cloud SQL Enterprise Plus

Per ordinare la tabella, seleziona un'intestazione di colonna.

Mostra il grafico del carico del database con un carico per le query, con i filtri selezionati per Capacità CPU, CPU e Attesa CPU, Attesa IO e Attesa blocco.

Cloud SQL Enterprise edition

Per ordinare la tabella, seleziona un'intestazione di colonna o una proprietà da Filtra query.

Mostra il grafico del carico del database con un carico per le query, con i filtri selezionati per Capacità CPU, CPU e Attesa CPU, Attesa IO e Attesa blocco.

La tabella mostra le seguenti proprietà:

  • Query: la stringa di query normalizzata. Per impostazione predefinita, Query Insights mostra solo 1024 caratteri nella stringa di query. Le query etichettate come UTILITY COMMAND di solito includono i comandi BEGIN, COMMIT e EXPLAIN o i comandi wrapper.
  • Database: il database su cui è stata eseguita la query.
  • Suggerimenti: i suggerimenti, ad esempio Crea indici, per migliorare le prestazioni delle query.
  • Carico per tempo totale/Carico per CPU/Carico per attesa IO/Carico per attesa blocco: le opzioni in base alle quali puoi filtrare query specifiche per trovare il carico maggiore.
  • % di carico per query: la percentuale di carico per singola query.
  • Analizza la latenza: se hai attivato la risoluzione dei problemi assistita dall'AI (anteprima) per questa istanza, puoi fare clic su questo link per risolvere i problemi relativi alle query lente.
  • Tempo di esecuzione medio (ms): il tempo medio di esecuzione della query.
  • Volte in cui è stato chiamato: il numero di volte in cui l'applicazione ha chiamato la query.
  • Numero medio di righe restituite: il numero medio di righe restituite per la query.

Query Insights archivia e visualizza solo le query normalizzate.

Per impostazione predefinita, Query Insights non raccoglie indirizzi IP o informazioni sui tag. Puoi attivare Query Insights per raccogliere queste informazioni e, se necessario, disattivare la raccolta.

Le tracce del piano di query non raccolgono né memorizzano valori costanti e rimuovono tutte le informazioni PII che la costante potrebbe mostrare.

Per PostgreSQL 9.6 e 10, Query Insights mostra le query normalizzate, ovvero ? sostituisce il valore della costante letterale. Nell'esempio seguente, la costante name viene rimossa e sostituita da ?.

  UPDATE
    "demo_customer"
  SET
    "customer_id" = ?::uuid,
    "name" = ?,
    "address" = ?,
    "rating" = ?,
    "balance" = ?,
    "current_city" = ?,
    "current_location" = ?
  WHERE
    "demo_customer"."id" = ?
  

Per PostgreSQL versione 11 e successive, $1, $2 e variabili simili sostituiscono i valori delle costanti letterali.

  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
  

Filtra per tag di query

Per risolvere i problemi di un'applicazione, devi prima aggiungere tag alle query SQL. I tag di carico delle query forniscono una suddivisione del carico delle query del tag selezionato nel tempo.

Query Insights fornisce un monitoraggio incentrato sulle applicazioni per diagnosticare i problemi di prestazioni delle applicazioni create utilizzando gli ORM. Se sei responsabile dell'intero stack di applicazioni, Query Insights fornisce il monitoraggio delle query da una visualizzazione dell'applicazione. Il tagging delle query ti aiuta a trovare i problemi nei costrutti di livello superiore, ad esempio con la logica di business o un microservizio.

Puoi taggare le query in base alla logica di business, ad esempio con i tag di pagamento, inventario, analisi aziendale o spedizione. Puoi quindi trovare il carico delle query creato dalle varie logiche di business. Ad esempio, potresti osservare eventi imprevisti, come picchi per un tag di analisi aziendale alle 13:00 o una crescita imprevista per un servizio di pagamento in tendenza rispetto alla settimana precedente.

Per calcolare il carico del database per il tag, Query Insights utilizza il tempo impiegato da ogni query che utilizza il tag selezionato. Lo strumento calcola il tempo di completamento al limite del minuto utilizzando il tempo reale.

Nella dashboard di Query Insights, per visualizzare la tabella dei tag, seleziona Tag. La tabella ordina i tag in base al carico totale per tempo totale.

Mostra la dashboard di Query Insights, con il carico per i tag e un elenco di tag.

Puoi ordinare la tabella selezionando una proprietà da Filtra tag o facendo clic sull'intestazione di una colonna. La tabella mostra le seguenti proprietà:

  • Action, Controller, Framework, Route, Application, DB driver: ogni proprietà aggiunta alle query viene visualizzata come colonna. Se vuoi filtrare in base ai tag, devi aggiungere almeno una di queste proprietà.
  • Carico per tempo totale/Carico per CPU/Carico per attesa IO/Carico per attesa blocco: opzioni per filtrare query specifiche per trovare il carico maggiore per ogni opzione.
  • Tempo di esecuzione medio (ms): il tempo medio di esecuzione della query.
  • Numero medio di righe restituite: il numero medio di righe restituite per la query.
  • Volte in cui è stato chiamato: il numero di volte in cui l'applicazione ha chiamato la query.
  • Database: il database su cui è stata eseguita la query.

Visualizza i dettagli della query per un tag o una query specifici

Per determinare se una query o un tag specifico è la causa principale del problema, esegui queste operazioni dalla scheda Query o Tag, rispettivamente:

  1. Per ordinare l'elenco in ordine decrescente, fai clic sull'intestazione Carico per tempo totale.
  2. Fai clic sulla query o sul tag in cima all'elenco. Ha il carico più elevato e richiede più tempo rispetto agli altri.

Viene visualizzata la pagina Dettagli query, che mostra i dettagli della query o del tag selezionati.

Esamina un carico di query specifico

La pagina Dettagli query per una query selezionata viene visualizzata come segue:

Mostra i grafici del carico e della latenza del database per una query specifica.

Il grafico Carico del database - query specifica mostra una misura del lavoro (in secondi CPU) che la query normalizzata ha eseguito nel tempo nella query selezionata. Per calcolare il carico, utilizza il tempo impiegato dalle query normalizzate completate al limite del minuto rispetto al tempo reale. Nella parte superiore della tabella vengono visualizzati i primi 1024 caratteri della query normalizzata, con i valori letterali rimossi per motivi di aggregazione e PII.

Mostra il grafico del carico del database con un carico per una query specifica, con i filtri selezionati per Capacità CPU, CPU e Attesa CPU, Attesa I/O e Attesa blocco.

Come per il grafico delle query totali, puoi filtrare il carico per una query specifica in base a Database, Utente e Indirizzo client. Il carico delle query è suddiviso in Capacità CPU, CPU e Attesa CPU, Attesa I/O e Attesa blocco.

Esamina un carico di query con tag specifico

La dashboard di un tag selezionato viene visualizzata come segue. Ad esempio, se tutte le query di un pagamento di microservizi sono taggate come payment, puoi visualizzare la tendenza del carico delle query visualizzando il tag payment.

Mostra i grafici di carico e latenza del database nella pagina per un tag specifico.

Il grafico Carico del database - tag specifici mostra una misura del lavoro (espresso in secondi CPU) che le query corrispondenti ai tag selezionati hanno eseguito nel tempo all'interno del database selezionato. Come per il grafico delle query totali, puoi filtrare il carico per un tag specifico in base a Database, Utente e Indirizzo client.

Esamina le operazioni in un piano di query campionato

Un piano di query prende un campione della query e lo suddivide in singole operazioni. Spiega e analizza ogni operazione della query.

Il grafico Esempi di piani di query mostra tutti i piani di query in esecuzione in momenti particolari e il tempo impiegato da ciascun piano per l'esecuzione. Puoi modificare la frequenza con cui vengono acquisiti i campioni di piano di query al minuto. Consulta Abilita Query Insights.

Un grafico per i piani di query di esempio, con il tempo di esecuzione nella parte inferiore del grafico (asse X) e il numero di secondi di esecuzione sulla destra (asse Y).

Per impostazione predefinita, il riquadro a destra mostra i dettagli del piano di query di esempio che richiede più tempo, come visibile nel grafico Esempi di piani di query. Per visualizzare i dettagli di un altro piano di query di esempio, fai clic sul cerchio pertinente nel grafico. I dettagli espansi mostrano un modello di tutte le operazioni nel piano di query.

Ogni operazione mostra la latenza, le righe restituite e il costo dell'operazione. Quando selezioni un'operazione, puoi visualizzare ulteriori dettagli, come blocchi di hit condivisi, tipo di schema, loop e righe del piano.

Il piano di query mostra la latenza e il costo di ogni operazione eseguita per la query.

Prova a circoscrivere il problema esaminando le seguenti domande:

  1. Qual è il consumo di risorse?
  2. In che modo è correlata ad altre query?
  3. Il consumo cambia nel tempo?

Esamina una traccia generata da una query di esempio

Oltre a visualizzare il piano di query di esempio, puoi utilizzare Query Insights per visualizzare una traccia dell'applicazione end-to-end nel contesto per una query di esempio. Questa traccia può aiutarti a identificare l'origine di una query problematica visualizzando l'attività del database per una richiesta specifica. Inoltre, le voci di log che l'applicazione invia a Cloud Logging durante la richiesta sono collegate alla traccia, il che ti aiuta nell'indagine.

Per visualizzare la traccia nel contesto:

  1. Nella schermata Query di esempio, fai clic sulla scheda Traccia end-to-end. Questa scheda mostra un diagramma di Gantt che descrive in dettaglio gli intervalli, ovvero i record delle singole operazioni, per la traccia generata dalla query.
  2. Per visualizzare ulteriori dettagli su ogni intervallo, ad esempio attributi e metadati, seleziona l'intervallo.

Puoi anche visualizzare la traccia nella pagina Esplora tracce. Per farlo, fai clic su Visualizza in Cloud Trace. Per informazioni dettagliate su come utilizzare la pagina Esplora tracce per esplorare i dati di traccia, consulta Trova ed esplora le tracce.

Esamina la latenza

La latenza è il tempo impiegato per il completamento della query normalizzata, in tempo reale. Utilizza il grafico Latenza per esaminare la latenza della query o del tag. La dashboard della latenza mostra le latenze del 50°, 95° e 99° percentile per trovare comportamenti anomali.

La seguente immagine mostra il grafico del carico del database al 50° percentile per una query specifica con filtri selezionati per Capacità CPU, CPU e attesa CPU, Attesa IO e Attesa blocco.

Mostra il grafico della latenza delle query per una query specifica con i filtri selezionati per capacità CPU, CPU e Attesa CPU, Attesa I/O e Attesa blocco.

La latenza delle query parallele viene misurata in tempo reale, anche se il carico della query può essere più elevato a causa dell'utilizzo di più core per l'esecuzione di parte della query.

Prova a circoscrivere il problema esaminando le seguenti domande:

  • Qual è la causa del carico elevato? Seleziona le opzioni per visualizzare la capacità della CPU, la CPU e l'attesa CPU, l'attesa I/O o l'attesa blocco.
  • Da quanto tempo il carico è elevato? È alta solo ora? O è alta da molto tempo? Modifica l'intervallo di tempo per trovare la data e l'ora in cui il carico ha iniziato a registrare un calo delle prestazioni.
  • Si sono verificati picchi di latenza? Modifica la finestra temporale per studiare la latenza storica per la query normalizzata.

Aggiungi tag alle query SQL

Il tagging delle query SQL semplifica la risoluzione dei problemi delle applicazioni. Puoi utilizzare sqlcommenter per aggiungere tag alle query SQL in modo automatico o manuale.

Utilizza sqlcommenter con ORM

Quando utilizzi l'ORM anziché scrivere direttamente query SQL, potresti non trovare il codice dell'applicazione che causa problemi di prestazioni. Potresti anche avere difficoltà ad analizzare l'impatto del codice dell'applicazione sulle prestazioni delle query. Per risolvere questo problema, Query Insights fornisce una libreria open source chiamata sqlcommenter. Questa libreria è utile per gli sviluppatori e gli amministratori che utilizzano strumenti ORM per rilevare quale codice dell'applicazione causa problemi di prestazioni.

Se utilizzi ORM e sqlcommenter insieme, i tag vengono creati automaticamente. Non è necessario aggiungere o modificare il codice nell'applicazione.

Puoi installare sqlcommenter sul server dell'applicazione. La libreria di strumentazione consente di propagare le informazioni dell'applicazione relative al framework MVC al database insieme alle query sotto forma di commento SQL. Il database rileva questi tag e inizia a registrare e aggregare le statistiche in base ai tag, che sono ortogonali alle statistiche aggregate in base alle query normalizzate. Query Insights mostra i tag in modo da farti sapere quale applicazione sta causando il carico delle query e trovare il codice dell'applicazione che causa problemi di prestazioni.

Quando esamini i risultati nei log del database SQL, vengono visualizzati come segue:

    SELECT * from USERS /action='run+this',
    controller='foo%3',
    traceparent='00-01',
    tracestate='rojo%2'/
  

I tag supportati includono il nome del controller, la route, il framework e l'azione.

Il set di strumenti ORM in sqlcommenter è supportato per i seguenti linguaggi di programmazione:

Python
  • Django
  • psycopg2
  • Sqlalchemy
  • Flask
Java
  • Iberna
  • Spring
Ruby
  • Rails
Node.js
  • Knex.js
  • Sequelize.js
  • Express.js
PHP
  • Laravel
Vai
  • http-tags
  • gorilla/mux
  • database/sql

Per saperne di più su sqlcommenter e su come utilizzarlo nel tuo framework ORM, consulta la documentazione di sqlcommenter.

Utilizza sqlcommenter per aggiungere tag

Se non utilizzi ORM, devi aggiungere manualmente i tag o i commenti sqlcommenter nel formato dei commenti SQL corretto alla query SQL. Devi anche integrare ogni istruzione SQL con un commento contenente una coppia chiave-valore serializzata. Utilizza almeno una delle seguenti chiavi:

  • action=''
  • controller=''
  • framework=''
  • route=''
  • application=''
  • db driver=''

Query Insights elimina tutte le altre chiavi.

Query attive bloccate

Se una query attiva specifica è bloccata o viene eseguita per un tempo molto più lungo del previsto, può bloccare altre query dipendenti.

Cloud SQL ti offre la possibilità di terminare query attive specifiche, bloccate o con tempi di esecuzione lunghi.

Per saperne di più, consulta Query attive bloccate.

Disabilita Query Insights

Console

Per disabilitare Query Insights per un'istanza Cloud SQL utilizzando la console Google Cloud , segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Nel riquadro Configurazione, fai clic su Modifica configurazione.
  4. Nella sezione Opzioni di configurazione, espandi Query Insights.
  5. Deseleziona la casella di controllo Abilita Query Insights.
  6. Fai clic su Salva.

gcloud

Per disabilitare Query Insights per un'istanza Cloud SQL utilizzando gcloud, esegui gcloud sql instances patch con il flag --no-insights-config-query-insights-enabled come segue, dopo aver sostituito INSTANCE_ID con l'ID dell'istanza.

gcloud sql instances patch INSTANCE_ID \
  --no-insights-config-query-insights-enabled

REST

Per disabilitare Query Insights per un'istanza Cloud SQL utilizzando l'API REST, chiama il metodo instances.patch con queryInsightsEnabled impostato su false come segue.

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

  • project-id: l'ID progetto.
  • instance-id: l'ID istanza.

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Corpo JSON della richiesta:

{
  "settings" : { "insightsConfig" : { "queryInsightsEnabled" : false } }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2021-01-28T22:43:40.009Z",
  "operationType": "UPDATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Disabilita Query Insights per la versione Cloud SQL Enterprise Plus

Per disabilitare Query Insights per la versione Cloud SQL Enterprise Plus, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Fai clic su Modifica.
  4. Nella sezione Personalizza la tua istanza, espandi Query Insights.
  5. Deseleziona la casella di controllo Abilita le funzionalità di Enterprise Plus.
  6. Fai clic su Salva.

Passaggi successivi