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.

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.

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

Approfondimenti sulle query per la versione Enterprise Plus di Cloud SQL

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

  • Acquisisci un testo di query più lungo fino a 20 KB
  • Mantieni una conservazione più lunga delle metriche per 30 giorni
  • Ricevere consigli sull'indicizzazione dal consulente per l'indicizzazione
  • Terminare una sessione nelle query attive

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

Area di confronto Approfondimenti sulle query per la versione Enterprise di Cloud SQL Approfondimenti sulle query per la versione Enterprise Plus di Cloud SQL
Versioni del database supportate

Tutte le versioni delle seguenti istanze:

  • SQL Server Web
  • SQL Server Standard
  • SQL Server Enterprise

Query Insights non è supportato nelle istanze dell'edizione Express di SQL Server

SQL Server Enterprise versione 2019 o 2022
Tipi di macchine supportati Supportato su tutti i tipi di macchine Non supportato nelle istanze che utilizzano un tipo di macchina con core condivisi
Regioni supportate Località regionali di Cloud SQL Località regionali della versione Cloud SQL Enterprise Plus
Periodo di conservazione delle metriche 7 giorni 30 giorni
Lunghezza massima della query 4500 byte 20 KB
Consigli dell'advisor per gli indici Non disponibile Disponibile
Termina le sessioni nelle query attive Non disponibile Disponibile

Per attivare gli approfondimenti sulle query per la versione Cloud SQL Enterprise Plus durante la preview per la tua istanza Cloud SQL Enterprise Plus, segui i passaggi descritti in Attivare gli approfondimenti sulle query per la versione Cloud SQL Enterprise Plus.

Prezzi

Non sono previsti costi aggiuntivi per gli approfondimenti sulle query. Inoltre, non è previsto alcun costo per attivare gli approfondimenti sulle query per la versione Cloud SQL Enterprise Plus, che è in anteprima.

Requisiti di spazio di archiviazione

Query Insights memorizza i dati delle metriche nell'istanza e richiede di mantenere attiva l'impostazione degli aumenti automatici dello spazio di archiviazione. Si applicano le tariffe di archiviazione applicabili.

Prima di iniziare

Prima di utilizzare gli approfondimenti sulle query, svolgi i seguenti passaggi.

  1. Aggiungi i ruoli e le autorizzazioni richiesti.
  2. Assicurati che Abilita aumenti automatici dello spazio di archiviazione sia abilitato per l'istanza.

Ruoli e autorizzazioni richiesti

Per utilizzare gli approfondimenti sulle query, devi concedere i ruoli con le autorizzazioni di gestione di identità e accessi richieste o fornire un account utente con le autorizzazioni richieste.

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

Per ottenere le autorizzazioni necessarie per accedere ai dati storici di esecuzione delle query nella dashboard Approfondimenti sulle query, 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 Gestire l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per accedere ai dati storici di esecuzione delle query nella dashboard Approfondimenti sulle query. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per accedere ai dati storici di esecuzione delle query nella dashboard di Query Insights sono necessarie le seguenti autorizzazioni:

  • databaseinsights.aggregatedStats.query
  • databaseinsights.timeSeries.query

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Ad esempio, in Database Insights puoi chiedere all'amministratore di concederti il ruolo predefinito Database Insights Viewer (roles/databaseinsights.viewer). In Cloud SQL, puoi chiedere all'amministratore di concederti uno dei seguenti ruoli predefiniti:

Abilita aumenti automatici dello spazio di archiviazione

Assicurati che l'impostazione dell'istanza per abilitare gli incrementi automatici dello spazio di archiviazione rimanga attivata.

Se in precedenza hai disattivato questa impostazione dell'istanza, riattiva gli aumenti automatici dello spazio di archiviazione prima di attivare gli approfondimenti sulle query.

Abilita Query Insights

Gli utenti che hanno accesso alla dashboard di Cloud SQL possono accedere alle metriche di Query Insights. Se disponi dell'autorizzazione per aggiornare le istanze, puoi attivare gli approfondimenti sulle query. Per un elenco delle autorizzazioni richieste per le istanze Cloud SQL, consulta Controllo dell'accesso ai progetti Cloud SQL. Se non disponi di queste autorizzazioni e vuoi attivare gli approfondimenti sulle query nelle tue istanza, contatta l'amministratore.

Console

Abilitare 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 Approfondimenti sulle query.
  5. Seleziona la casella di controllo Attiva Query Insights.
  6. Facoltativo. Seleziona una o più delle seguenti funzionalità aggiuntive degli insight sulle query:
  7. Personalizzare la lunghezza delle query

    Valore predefinito: 1024

    Imposta il limite di lunghezza della query su un valore specificato compreso tra 256 e 4500 byte. Le query con una lunghezza maggiore sono più utili per le query di analisi, ma richiedono anche più memoria. Per modificare la lunghezza delle query, devi riavviare l'istanza.

  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 Attiva Query Insights.
  4. Nella finestra di dialogo, seleziona la casella di controllo Abilita Query Insights per più istanze.
  5. Fai clic su Abilita.
  6. Nella finestra di dialogo successiva, seleziona le istanze per cui vuoi attivare Query Insights.
  7. Fai clic su Attiva Query Insights.

gcloud

Per attivare gli approfondimenti sulle query 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
  

Utilizza anche uno o più dei seguenti flag facoltativi:

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

    Imposta il limite predefinito per la lunghezza delle query su un valore specificato compreso tra 256 e 4500 byte. La lunghezza predefinita delle query è 1024 byte. Le query con una lunghezza maggiore sono più utili per le query di analisi, ma richiedono anche più memoria. Per modificare la lunghezza delle query, devi riavviare l'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 \
--tier=API_TIER_STRING \
--region=REGION
  

REST v1

Per attivare gli approfondimenti sulle query 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 seguenti sostituzioni:

  • 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" : true } }
}

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"
}

Terraform

Per utilizzare Terraform per attivare 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: il valore predefinito è 1024 e puoi impostarlo su un valore compreso tra 256 e 4500 in byte.
  • record_application_tags: imposta il valore su true se vuoi registrare i tag delle applicazioni dalla query.
  • record_client_address: imposta il valore su true se vuoi registrare l'indirizzo IP del client.
  • query_plans_per_minute: il valore predefinito è 5 e puoi impostarlo su un valore compreso tra 5 e 20.

Ecco un esempio:

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

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 farlo 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 di Terraform deve avere una 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 main.tf appena creato.

    Se vuoi, 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

    Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o aggiornare corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

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

    Attendi che Terraform mostri il messaggio "Applicazione completata".

  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 negli approfondimenti sulle query entro pochi minuti dal completamento della query.

Attivare gli approfondimenti sulle query per la versione Cloud SQL Enterprise Plus

Puoi attivare gli approfondimenti sulle query per la versione Cloud SQL Enterprise Plus sulla tua istanza Cloud SQL solo utilizzando la console Google Cloud.

  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 Spazio di archiviazione, verifica che sia selezionata la casella di controllo Abilita aumenti automatici dello spazio di archiviazione.
  5. Nella sezione Personalizza la tua istanza, espandi Approfondimenti sulle query.
  6. Seleziona la casella di controllo Attiva le funzionalità di Enterprise Plus.
  7. Dopo aver attivato gli approfondimenti sulle query per la versione Enterprise Plus di Cloud SQL, puoi aggiornare i seguenti campi:

    • Personalizza la lunghezza delle query: specifica il limite, in byte, della lunghezza della query. Puoi specificare un numero da 256 a 20480. Qualsiasi stringa di query che superi il limite specificato viene troncata nella visualizzazione. Un limite di lunghezza della query più elevato richiede più memoria. Il valore predefinito è 10240 byte (10 KB).

  8. Fai clic su Salva.

Visualizzare la dashboard Query Insights

La dashboard Approfondimenti sulle query mostra il carico delle query in base ai fattori selezionati. 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 Approfondimenti sulle query:

  1. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  2. Seleziona la scheda Query Insight nel pannello di navigazione a sinistra o fai clic sul link Vai a Query Insight per informazioni più approfondite su query e prestazioni.

Si apre la dashboard Approfondimenti sulle query. Mostra le seguenti informazioni sulla tua istanza:

Mostra la dashboard Approfondimenti sulle query, con i menu a discesa per i database. A destra dei menu a discesa, c'è un filtro per impostare un intervallo di tempo.

  • Database: filtra il carico delle query su un database specifico o su tutti i database.
  • 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: mostra il grafico del carico delle query in base ai dati filtrati.
  • Query e Database: filtra il carico delle query in base a una query o a un database selezionato. Consulta Filtrare 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) nel tempo per le query eseguite nel database selezionato. 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 le ore effettive.

La dashboard di Query Insights di primo livello mostra il grafico Carico del database per tempo di esecuzione. I menu a discesa nella dashboard ti consentono di filtrare il grafico per tutti i database o per un database specifico.

Mostra tutte le query eseguite per un database scelto.

Le linee colorate nel grafico mostrano il carico del database per tempo di esecuzione. Esamina il grafico e utilizza le opzioni di filtro per rispondere a queste domande:

  • Il carico delle query è elevato? Il grafico presenta picchi o è elevato nel tempo? Se non noti un carico elevato, il problema non riguarda la query.
  • Da quanto tempo il carico è elevato? È alto solo ora o lo è da molto tempo? Utilizza il selettore di intervalli per selezionare vari periodi di tempo per scoprire da quanto tempo si verifica il problema. Aumenta lo zoom per visualizzare una finestra temporale in cui vengono osservati picchi di carico delle query. Riduci lo zoom per visualizzare fino a una settimana della cronologia.
  • Quale database sta riscontrando il carico? Seleziona diversi database dal menu a discesa Database per trovare quelli con i carichi più elevati.

Filtrare il carico del database

Puoi filtrare il carico del database in base alle query. Se utilizzi gli approfondimenti delle query per la versione Enterprise Plus di Cloud SQL, puoi personalizzare il grafico del carico del database per suddividere i dati visualizzati utilizzando una delle seguenti dimensioni:

  • Tutte le query

  • Database

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 principali per carico del database. La tabella Principali dimensioni per carico del database mostra i principali fattori di contributo per il periodo di tempo e la 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 contributor per una dimensione o un periodo di tempo diverso.

Nella tabella Principali dimensioni per carico di dati, puoi selezionare le seguenti schede.

TAB Descrizione
Query La tabella mostra le query normalizzate principali per tempo di esecuzione totale. Per ogni query, i dati mostrati nelle colonne sono elencati come segue:
  • Tempo di esecuzione medio (ms): tempo medio di esecuzione della query.
  • Tempo di esecuzione totale (ms): il tempo di esecuzione totale impiegato dalla query specifica.
  • Riga media restituita: il numero medio di righe recuperate per la query.
  • Numero di chiamate: il numero di volte in cui la query è stata chiamata dall'applicazione.
Database La tabella mostra l'elenco dei principali database che hanno contribuito al caricamento durante il periodo di tempo scelto in tutte le query eseguite.
  • Tempo medio trascorso nel database (ms): tempo medio impiegato dalle query nel database specifico.
  • Tempo totale trascorso nel database (ms): il tempo di esecuzione totale impiegato dalle query nel database specifico.

Filtra per query

La tabella Query fornisce una panoramica delle query che causano il maggior carico di query. La tabella mostra tutte le query normalizzate per la finestra temporale e le opzioni selezionate nella dashboard Approfondimenti sulle query. Ordina le query in base al tempo di esecuzione totale durante l'intervallo di tempo selezionato.

Per ordinare la tabella, seleziona un'intestazione di colonna. La tabella mostra le seguenti proprietà:

  • Query: la stringa di query normalizzata. Per impostazione predefinita, gli Approfondimenti sulle query mostrano solo 1024 caratteri nella stringa di query.
  • Database: il database su cui è stata eseguita la query.
  • Tempo di esecuzione medio (ms): il tempo medio di esecuzione della query.
  • Tempo di esecuzione totale (ms): il tempo totale necessario per l'esecuzione della query.
  • Numero di chiamate: 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.

La sezione Approfondimenti sulle query memorizza e mostra solo le query normalizzate.

Disattivare Query Insights

Console

Per disattivare gli approfondimenti sulle query 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 Approfondimenti sulle query.
  5. Deseleziona la casella di controllo Abilita Query Insights.
  6. Fai clic su Salva.

gcloud

Per disattivare gli approfondimenti sulle query 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 disattivare gli approfondimenti sulle query 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 seguenti sostituzioni:

  • 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"
}

Disattivare gli approfondimenti sulle query per la versione Cloud SQL Enterprise Plus

Per disattivare gli approfondimenti sulle query per la versione Enterprise Plus di Cloud SQL, 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 Approfondimenti sulle query.
  5. Deseleziona la casella di controllo Abilita le funzionalità di Enterprise Plus.
  6. Fai clic su Salva.

Passaggi successivi