Utilizzare il consulente per gli indici

In questa pagina viene descritto il consulente sull'indicizzazione di Cloud SQL per PostgreSQL e come puoi visualizzare e applicare i relativi suggerimenti sull'indice.

Cloud SQL per PostgreSQL offre un consulente sull'indicizzazione che monitora le query handle del 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 l'indice

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

Disattivare i consigli del consulente per gli indici

Per disabilitare i suggerimenti dei suggerimenti sull'indicizzazione, rimuovi cloudsql.enable_index_advisor dall'istanza Cloud SQL per PostgreSQL. Per ulteriori informazioni 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 periodicamente.

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

  • google_db_advisor_recommended_indexes: elenca i nuovi consigli 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 del suggerimento sull'indicizzazione più recente dell'analisi, formattata come tabella, esegui questa query:

SELECT * FROM google_db_advisor_recommended_indexes;

Se l'analisi più recente del consulente sull'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 completa associata, 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 sull'indicizzazione, può richiedere che Cloud SQL per PostgreSQL esegua immediatamente un'analisi 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 stime le esigenze di archiviazione degli 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 sull'indice in base a query eseguite dall'utente del database corrente.

Applica i suggerimenti del consulente sull'indicizzazione

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

Per applicare il consiglio della riga, esegui l'istruzione DDL esattamente come presentata. Devi copiarlo negli appunti e incollarlo. 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 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

Cancella le query monitorate del consulente 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 le risorse di Index Advisors una raccolta immediata di query monitorate.