Utilizza i suggerimenti sull'indicizzazione

Questa pagina descrive il suggerimento sull'indicizzazione di Cloud SQL per PostgreSQL e come puoi visualizzare e applicare i relativi suggerimenti sull'indicizzazione.

Cloud SQL per PostgreSQL offre un consulente per l'indicizzazione che monitora le query gestite dal tuo database. Analizza periodicamente queste query per consigliare nuovi indici che possano aumentare le prestazioni delle query.

Puoi visualizzare ed eseguire query sui suggerimenti del consulente sull'indicizzazione sotto forma di tabella o richiedere un'analisi e un report on demand in qualsiasi momento.

Abilita i suggerimenti dei suggerimenti sull'indicizzazione

Per abilitare i suggerimenti dei suggerimenti sull'indicizzazione, configura Gemini in Databases.

Disabilita i suggerimenti dei suggerimenti sull'indicizzazione

Per disabilitare i suggerimenti dei suggerimenti sull'indicizzazione, 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.

Visualizza i suggerimenti del consulente sull'indicizzazione

Cloud SQL per PostgreSQL esegue automaticamente l'analisi di Index Advisors in modo periodico.

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

  • google_db_advisor_recommended_indexes: elenca i nuovi indici consigliati per ciascun database. Include inoltre le stime dell'archiviazione richiesta per ogni indice e il numero di query che ogni indice può influenzare.

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

Ad esempio, per vedere i risultati dell'analisi dei suggerimenti di indice più recente, formattata come tabella, esegui questa query:

SELECT * FROM google_db_advisor_recommended_indexes;

Se l'analisi più recente del consulente sull'indicizzazione non trova suggerimenti, 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 abbina 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;

Richiedi manualmente un'analisi dell'indice

Anziché attendere la successiva analisi pianificata del consulente sull'indicizzazione, puoi richiedere a Cloud SQL per PostgreSQL di eseguire immediatamente un'analisi e visualizzare il relativo report. Per Cloud SQL per PostgreSQL, devi attendere almeno 15 minuti dopo aver abilitato Index Advisor per l'esecuzione di 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 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 suggerimenti visualizzati. Cloud SQL per PostgreSQL limita la visualizzazione ai suggerimenti sull'indicizzazione in base alle query eseguite dall'utente del database attuale.

Applica i suggerimenti del consulente sull'indicizzazione

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

Per applicare il suggerimento della riga, esegui l'istruzione DDL esattamente come presentato. Devi copiarlo negli appunti e incollarlo in un prompt di 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 colonna singola 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");

Visualizza le query monitorate da Index Advisors

La vista google_db_advisor_workload_statements contiene un elenco di tutte le query monitorate dal consulente di indice, nonché i metadati importanti per ognuna, 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

Cancella le query monitorate del consulente sull'indicizzazione

Puoi reimpostare il comportamento del suggerimento sull'indicizzazione 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 delle query monitorate da Index Advisor.