Utilizzare il consulente per gli indici

Questa pagina descrive l'Advisor per gli indici di Cloud SQL per PostgreSQL e come visualizzare e applicare i relativi consigli sugli indici.

Cloud SQL per PostgreSQL offre un consulente per gli indici che monitora le query gestite dal database. Analizza periodicamente queste query per consigliare nuovi indici che possono aumentare le prestazioni delle query.

Puoi visualizzare ed eseguire query sui consigli dell'Advisor per gli indici sotto forma di tabella oppure richiedere un'analisi e un report on demand in qualsiasi momento.

Attivare i consigli del consulente per gli indici

Per attivare i consigli del consulente per gli indici, configura Gemini in Databases.

Disattivare i consigli del consulente per gli indici

Per disattivare i consigli dell'Advisor per gli indici, rimuovi il flag cloudsql.enable_index_advisor dall'istanza Cloud SQL per PostgreSQL. Per ulteriori informazioni su come rimuovere un flag dall'istanza, consulta Configurare i flag di database.

Visualizzare i consigli dell'Advisor per gli indici

Cloud SQL per PostgreSQL esegue automaticamente l'analisi dell'advisor per gli indici periodicamente.

Puoi leggere i risultati tramite le seguenti visualizzazioni di tabelle situate in ciascuno dei tuoi database:

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

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

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

SELECT * FROM google_db_advisor_recommended_indexes;

Se l'analisi più recente del consulente per l'indicizzazione non trova consigli, la query restituisce una tabella senza righe.

Poiché tutti questi report esistono come viste di database ordinarie, puoi scrivere query che filtrano o presentano queste informazioni. Ad esempio, per visualizzare un report che abbina gli indici consigliati con la query associata completa, unisci le visualizzazioni google_db_advisor_workload_report e google_db_advisor_workload_statements alle 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 consulente per gli indici, puoi richiedere a Cloud SQL per PostgreSQL di eseguire immediatamente un'analisi e di visualizzare il relativo report. Per Cloud SQL per PostgreSQL, devi attendere almeno 15 minuti dopo aver attivato l'Advisor per gli indici 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 visualizza un report in formato tabella con la descrizione e le esigenze di archiviazione stimate di eventuali 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 dei consigli per l'indice in base alle query emesse dall'utente corrente del database.

Applicare i consigli dell'Advisor per gli indici

La colonna index della vista 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 consiglio della riga, esegui l'istruzione DDL esattamente come presentata. ad esempio copiandolo negli appunti e incollandolo in un prompt 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 singolo consiglio: aggiungere un indice di una colonna alla colonna age nella 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 monitorate dal suggerimento sull'indicizzazione

La visualizzazione google_db_advisor_workload_statements contiene un elenco di tutte le query monitorate dall'Advisor per gli indici, nonché metadati importanti per ciascuna, ad esempio le seguenti metriche:

  • Il numero di volte in cui l'istanza ha eseguito ogni query
  • Il tempo totale impiegato dall'istanza per elaborare queste query
  • L'ID dell'utente del database che esegue queste query

Cancellare le query monitorate del suggerimento sull'indicizzazione

Puoi reimpostare il comportamento del consulente per gli indici in un'istanza svuotando 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 dell'Advisor per gli indici.