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 sull'indicizzazione che monitora le query handle del database. Analizza periodicamente queste query per consigliare nuovi indici che possano aumentare la quantità di query delle prestazioni.
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 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 flagcloudsql.enable_index_advisor
dall'istanza Cloud SQL per PostgreSQL. Per ulteriori informazioni
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 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 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 accoppia indici consigliati con
alla query associata completa, unisciti
google_db_advisor_workload_report
e
google_db_advisor_workload_statements
visualizzazioni sul suo
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 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 abilitato il suggerimento sull'indicizzazione 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 eventuali indici consigliati. Se l'analisi non trova nuovi gli 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 consigli di indicizzazione in base alle query emesse dall'utente corrente del database.
Applica i suggerimenti del consulente sull'indicizzazione
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 suggerimento della riga, esegui l'istruzione DDL, esattamente come
presentati. ad esempio 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 solo consiglio: aggiungere una colonna singola
indice nella colonna age
all'interno dello schema Students
dello schema School
tabella. Per applicare questo consiglio, inserisci una query DDL come
rappresentati nel report:
CREATE INDEX ON "School"."Students"("age");
Visualizzare le query monitorate dal suggerimento sull'indicizzazione
La vista google_db_advisor_workload_statements
contiene un elenco di tutte
le query tracciate dal consulente sull'indicizzazione,
metadati importanti per ciascuno, 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 dei suggerimenti sull'indicizzazione su un'istanza la cancellazione delle 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.