Utilizzare il consulente per gli indici

Questa pagina descrive lo strumento di consulenza per gli indici di Cloud SQL per PostgreSQL e come visualizzare e applicare i suoi suggerimenti per gli indici.

Cloud SQL per PostgreSQL offre un consulente per gli indici completamente gestito che tiene traccia delle query gestite regolarmente dal database. Periodicamente, i suggerimenti sull'indicizzazione analizzano queste query per consigliare nuovi indici che possono migliorare le prestazioni delle query. Index Advisor ti consente di rilevare e risolvere i problemi di prestazioni di sistemi e query.

Come funziona il suggeritore di indici?

I suggerimenti sull'indicizzazione ti aiutano a migliorare l'elaborazione delle query nel seguente modo:

  • Consiglia un insieme di indici con comandi SQL per creare indici.
  • Fornisci dati per aiutarti a valutare gli indici consigliati, ad esempio le dimensioni di archiviazione stimate e l'impatto degli indici su una query.
Il suggeritore di indici archivia e mostra il comando CREATE INDEX contenente il nome del database, il nome dello schema, il nome della tabella e i nomi delle colonne. Le query monitorate sono tutte query normalizzate con tutti i valori letterali rimossi.

I suggerimenti sull'indicizzazione vengono criptati at-rest.

Limitazioni

Il suggeritore di indici di Cloud SQL per PostgreSQL presenta le seguenti limitazioni:

  • Index Advisor fornisce solo consigli per CREATE INDEX.
  • Il consulente per gli indici non supporta le istanze con le seguenti configurazioni:
    • Istanze Cloud SQL Enterprise
    • Istanze replica di lettura

Prima di iniziare

Per ottenere i consigli di Index Advisor, devi utilizzare la versione Cloud SQL Enterprise Plus e attivare Query Insights per la versione Cloud SQL Enterprise Plus per la tua istanza Cloud SQL.

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per ottenere i suggerimenti di Index Advisor, chiedi all'amministratore di concederti il ruolo IAM Cloud SQL Viewer (roles/cloudsql.viewer) 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.

Questo ruolo predefinito contiene le autorizzazioni necessarie per ottenere i consigli di Index Advisor. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per ottenere i suggerimenti di Index Advisor sono necessarie le seguenti autorizzazioni:

  • databaseinsights.recommendations.query
  • databaseinsights.resourceRecommendations.query

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

Abilita i suggerimenti di Index Advisor

Per abilitare i suggerimenti di Index Advisor:

  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. Assicurati che l'opzione Abilita Query Insights sia attivata.
  6. Se non è già selezionata, seleziona Attiva funzionalità Enterprise Plus.
  7. Seleziona Abilita i suggerimenti sull'indicizzazione.
  8. Fai clic su Salva.

Disattivare i suggerimenti di Index Advisor

Per disattivare i suggerimenti di Index Advisor:

  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. Deseleziona la casella di controllo Abilita suggerimenti sull'indicizzazione.
  6. Fai clic su Salva.

Visualizzare i suggerimenti di Index Advisor

Cloud SQL esegue automaticamente l'analisi di Index Advisor periodicamente. Per visualizzare i suggerimenti di Index Advisor, utilizza la dashboard Query Insights. Puoi anche visualizzare ed eseguire query sui consigli di Index Advisor come tabella o richiedere un'analisi e un report on demand in qualsiasi momento.

Visualizzare e filtrare i suggerimenti nella dashboard Query Insights

  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 Approfondimenti sulle query.
  4. I suggerimenti di Index Advisor vengono visualizzati nella colonna Suggerimento della sezione Query e tag principali.
  5. (Facoltativo) Per visualizzare solo le query con suggerimenti CREATE INDEX, aggiungi un filtro per Suggerimento: crea indici.

Visualizzare i consigli per una query

Per visualizzare i suggerimenti per l'indice per una query specifica:

  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 Approfondimenti sulle query.
  4. Nella sezione Query e tag principali, fai clic su Query.
  5. Per visualizzare i dettagli del consiglio per una query, effettua una delle seguenti operazioni:
    • Fai clic su una query per scoprire di più sui consigli per la query selezionata, incluse le seguenti informazioni:
      • Impatto sulle prestazioni (alto, medio e basso): la velocità stimata della query dopo la creazione di tutti gli indici consigliati.
      • Consigli: crea suggerimenti per gli indici.
      • Tabelle interessate: il numero di tabelle che verranno interessate quando vengono creati gli indici.
      • Spazio di archiviazione stimato aggiuntivo necessario: lo spazio di archiviazione stimato necessario per creare tutti gli indici consigliati.
      • Numero di query interessate: il numero totale di query nel workload interessate dai suggerimenti per gli indici. Un indice può migliorare più query.
    • Fai clic su Crea indici per una query specifica per visualizzare consigli dettagliati sulla creazione di indici per migliorare le prestazioni delle query.

Visualizzare i consigli come visualizzazione tabella del database

Puoi leggere i risultati tramite le seguenti visualizzazioni tabella che si trovano in ciascuno dei tuoi database:

  • google_db_advisor_recommended_indexes: elenca tutti i nuovi indici consigliati per ogni database. Include anche le stime dello spazio di archiviazione richiesto per ogni indice e il numero di query che ogni indice può interessare.

  • google_db_advisor_workload_report: elenca ogni query per cui il consulente consiglia uno o più nuovi indici. Ogni riga riepiloga i consigli per la query pertinente.

Ad esempio, per visualizzare i risultati dell'analisi dei suggerimenti per gli indici più recenti, formattati come tabella, esegui questa query:

SELECT * FROM google_db_advisor_recommended_indexes;

Se l'analisi più recente di Index Advisor non trova consigli, questa query restituisce una tabella senza righe.

Poiché tutti questi report esistono come normali viste del database, puoi scrivere query che filtrano o presentano queste informazioni. Ad esempio, per visualizzare un report che associa gli indici consigliati alla query associata completa, unisci le visualizzazioni google_db_advisor_workload_report e google_db_advisor_workload_statements nelle rispettive colonne query_id:

SELECT DISTINCT recommended_indexes, query
FROM google_db_advisor_workload_report r, google_db_advisor_workload_statements s
WHERE r.query_id = s.query_id;

Richiedere manualmente un'analisi dell'indice

Anziché attendere la successiva analisi pianificata del suggeritore di indici, puoi richiedere a Cloud SQL per PostgreSQL di eseguire immediatamente un'analisi e visualizzare il report. Per Cloud SQL per PostgreSQL, devi attendere almeno 15 minuti dopo aver attivato Index Advisor per eseguire un'analisi manuale. Per farlo, esegui questa funzione SQL:

SELECT * FROM google_db_advisor_recommend_indexes();

Al termine dell'analisi, Cloud SQL per PostgreSQL mostra un report in formato tabella con la descrizione e le esigenze di spazio di archiviazione stimate di tutti gli indici consigliati. Se l'analisi non trova nuovi indici da consigliare, la vista non contiene righe.

Tieni presente che il ruolo utente che esegue questo comando può influire sui consigli visualizzati. Cloud SQL per PostgreSQL limita la visualizzazione ai suggerimenti per gli indici in base alle query emesse dall'utente del database corrente.

Crea indici consigliati

Puoi creare indici consigliati dalla dashboard Query Insights o da una visualizzazione della tabella del database.

Per creare un indice consigliato utilizzando la dashboard Query Insights:

  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 Approfondimenti sulle query.
  4. Nella tabella Dimensioni massime per carico del database, fai clic su Query.
  5. Fai clic su Crea indici per una query specifica.
  6. Fai clic su Copia tutti i comandi di indice. I comandi CREATE INDEX vengono copiati negli appunti.
  7. Connettiti all'istanza principale dalla riga di comando.
  8. Per creare gli indici consigliati, esegui i comandi copiati negli appunti, ad esempio:

    CREATE INDEX ON "public"."demo_order" ("customer_id");

La colonna index della visualizzazione google_db_advisor_recommended_indexes contiene, in ogni riga, un'istruzione DDL CREATE INDEX PostgreSQL completa per generare l'indice consigliato in quella riga.

Per applicare il suggerimento della riga, esegui l'istruzione DDL esattamente come presentata. Ciò include la copia negli appunti e l'incollatura in un prompt di psql.

Ad esempio, considera questo output dell'esecuzione manuale di un'analisi, utilizzando la query descritta nella sezione precedente:

                    index                   | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
 CREATE INDEX ON "School"."Students"("age") |                            3
(1 row)

Questo report contiene un solo consiglio: aggiungere un indice a una sola colonna nella colonna age della tabella Students dello schema School. Per applicare questo consiglio, inserisci una query DDL come rappresentato nel report:

CREATE INDEX ON "School"."Students"("age");

Visualizza le query interessate

  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 Approfondimenti sulle query.
  4. Nella tabella Dimensioni massime per carico del database, fai clic su Query.
  5. Fai clic su Crea indici per una query specifica.
  6. Fai clic su Mostra query interessate.
  7. Fai clic su una query per visualizzare i dettagli della query interessata.

Visualizzare le query monitorate di Index Advisor

La visualizzazione google_db_advisor_workload_statements contiene un elenco di tutte le query monitorate dal suggeritore di indici, nonché importanti metadati per ognuna, ad esempio le seguenti metriche:

  • Il numero di volte in cui l'istanza ha eseguito ogni query
  • Il tempo totale che l'istanza dedica all'elaborazione di queste query
  • L'ID dell'utente del database che esegue queste query

Cancella le query monitorate dei suggerimenti sull'indicizzazione

Puoi reimpostare il comportamento di Index Advisor su un'istanza cancellando le query monitorate. Per farlo, esegui questa funzione SQL:

SELECT google_db_advisor_reset();

Cloud SQL per PostgreSQL svuota immediatamente la raccolta di query monitorate di Index Advisor.

Passaggi successivi