Utilizzare il consulente per gli indici

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

Cloud SQL per PostgreSQL offre uno strumento di suggerimenti sugli indici completamente gestito che tiene traccia delle query gestite regolarmente dal database. Periodicamente, lo strumento di suggerimenti sugli indici analizza queste query per consigliare nuovi indici che possono migliorare le prestazioni delle query. Lo strumento di suggerimenti sugli indici consente di rilevare e risolvere i problemi di prestazioni con sistemi e query.

Come funziona lo strumento di suggerimenti sugli indici?

Lo strumento di suggerimenti sugli indici ti aiuta a migliorare l'elaborazione delle query nei seguenti modi:

  • Consiglia un insieme di indici con comandi SQL per creare indici.
  • Fornisce dati per aiutarti a valutare gli indici consigliati, ad esempio le dimensioni di archiviazione stimate e l'impatto degli indici su una query.
Lo strumento di suggerimenti sugli indici archivia e visualizza 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 sugli indici vengono criptati at-rest.

Limitazioni

Lo strumento di suggerimenti sugli indici di Cloud SQL per PostgreSQL presenta le seguenti limitazioni:

  • Lo strumento di suggerimenti sugli indici fornisce solo suggerimenti CREATE INDEX.
  • Lo strumento di suggerimenti sugli indici non supporta le istanze con le seguenti configurazioni:
    • Istanze della versione Cloud SQL Enterprise
    • Istanze replica di lettura

Prima di iniziare

Per ottenere i suggerimenti dello strumento di suggerimenti sugli indici, devi utilizzare la versione Cloud SQL Enterprise Plus e abilitare 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 dello strumento di suggerimenti sugli indici, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore Cloud SQL (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 include le autorizzazioni necessarie per ottenere i suggerimenti dello strumento di suggerimenti sugli indici. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per ottenere i suggerimenti dello strumento di suggerimenti sugli indici sono necessarie le seguenti autorizzazioni:

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

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

Abilitare i suggerimenti dello strumento di suggerimenti sugli indici

Per abilitare i suggerimenti dello strumento di suggerimenti sugli indici:

  1. Nella Google Cloud console, 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. Assicurati che l'opzione Abilita Query Insights sia abilitata.
  6. Se non è già selezionata, seleziona Abilita funzionalità Enterprise Plus.
  7. Seleziona Abilita strumento di suggerimenti sugli indici.
  8. Fai clic su Salva.

Disabilitare i suggerimenti dello strumento di suggerimenti sugli indici

Per disabilitare i suggerimenti dello strumento di suggerimenti sugli indici:

  1. Nella Google Cloud console, 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. Deseleziona la casella di controllo Abilita strumento di suggerimenti sugli indici.
  6. Fai clic su Salva.

Visualizzare i suggerimenti dello strumento di suggerimenti sugli indici

Cloud SQL esegue automaticamente l'analisi dello strumento di suggerimenti sugli indici periodicamente. Per visualizzare i suggerimenti dello strumento di suggerimenti sugli indici, utilizza la dashboard Query Insights. Puoi anche visualizzare ed eseguire query sui suggerimenti dello strumento di suggerimenti sugli indici 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 Google Cloud console, 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 Query Insights.
  4. I suggerimenti dello strumento di suggerimenti sugli indici 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 suggerimenti per una query

Per visualizzare i suggerimenti sugli indici per una query specifica:

  1. Nella Google Cloud console, 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 Query Insights.
  4. Nella sezione Query e tag principali, fai clic su Query.
  5. Per visualizzare i dettagli dei suggerimenti per una query, esegui una delle seguenti operazioni:
    • Fai clic su una query per scoprire di più sui suggerimenti per la query selezionata, incluse le seguenti informazioni:
      • Impatto sulle prestazioni (alto, medio e basso): la velocità di query stimata dopo la creazione di tutti gli indici consigliati.
      • Suggerimenti: crea suggerimenti sugli indici.
      • Tabelle interessate: il numero di tabelle che saranno interessate dalla creazione degli indici.
      • Spazio di archiviazione stimato aggiuntivo necessario: le dimensioni di archiviazione stimate necessarie per creare tutti gli indici consigliati.
      • Numero di query interessate: il numero totale di query nel carico di lavoro interessate dai suggerimenti sugli indici. Un indice può avvantaggiare più query.
    • Fai clic su Crea indici per una query specifica per visualizzare i suggerimenti dettagliati sulla creazione di indici per migliorare le prestazioni delle query.

Visualizzare i suggerimenti 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 la quale lo strumento di suggerimenti consiglia uno o più nuovi indici. Ogni riga riassume i suggerimenti per la query pertinente.

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

SELECT * FROM google_db_advisor_recommended_indexes;

Se l'analisi più recente dello strumento di suggerimenti sugli indici non trova suggerimenti, questa query restituisce una tabella senza righe.

Poiché tutti questi report esistono come visualizzazioni di database normali, puoi scrivere query che filtrano o presentano queste informazioni. Ad esempio, per visualizzare un report che associa gli indici consigliati a una 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 degli indici

Anziché attendere la prossima analisi pianificata dello strumento di suggerimenti sugli 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 abilitato lo strumento di suggerimenti sugli indici per eseguire un'analisi manuale. A tal fine, esegui questa funzione SQL:

SELECT * FROM google_db_advisor_recommend_indexes();

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

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

Creare indici consigliati

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

Per creare un indice consigliato utilizzando la dashboard Query Insights:

  1. Nella Google Cloud console, 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 Query Insights.
  4. Nella tabella Dimensioni principali 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'incolla in un prompt psql.

Ad esempio, considera questo output dall'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 suggerimento: aggiungere un indice a una singola colonna nella colonna age della tabella Students dello schema School. Per applicare questo consiglio, inserisci una query DDL come rappresentata nel report:

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

Visualizzare le query interessate

  1. Nella Google Cloud console, 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 Query Insights.
  4. Nella tabella Dimensioni principali 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 dallo strumento di suggerimenti sugli indici

La visualizzazione google_db_advisor_workload_statements contiene un elenco di tutte le query monitorate dallo strumento di suggerimenti sugli indici, nonché metadati importanti per ognuna, come 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

Cancellare le query monitorate dallo strumento di suggerimenti sugli indici

Puoi reimpostare il comportamento dello strumento di suggerimenti sugli indici su un'istanza cancellando le query monitorate. A tal fine, esegui questa funzione SQL:

SELECT google_db_advisor_reset();

Cloud SQL per PostgreSQL svuota immediatamente la raccolta di query monitorate dello strumento di suggerimenti sugli indici.

Passaggi successivi