Utilizzare il consulente per l'indicizzazione

AlloyDB per PostgreSQL offre un consulente per gli indici che monitora le query gestite regolarmente dal database. Periodicamente, analizza queste query per consigliare nuovi indici che possono aumentare le prestazioni delle query.

Puoi visualizzare ed eseguire query sui consigli come tabella oppure richiedere un'analisi e un report on demand in qualsiasi momento.

Visualizzare i consigli dell'Advisor per gli indici

AlloyDB esegue automaticamente l'analisi dell'advisor per gli indici periodicamente. Puoi leggere i risultati tramite due visualizzazioni tabella situate in ciascuno dei tuoi database:

  • google_db_advisor_recommended_indexes elenca eventuali nuovi indici consigliati per il 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 le informazioni nel modo che preferisci. 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 ad AlloyDB di eseguire immediatamente un'analisi e di visualizzare il relativo report. Per farlo, esegui questa funzione SQL:

SELECT * FROM google_db_advisor_recommend_indexes();

Al termine dell'analisi, AlloyDB 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 PostgreSQL che esegue questo comando può influire sui consigli visualizzati. Se questa query viene eseguita da postgres o da un altro utente con il ruolo alloydbsuperuser, AlloyDB mostra tutti i consigli attuali dell'advisor per gli indici. In caso contrario, AlloyDB limita la sua visualizzazione all'indice dei consigli in base alle query emesse dall'utente attuale 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 copiarlo negli appunti e incollarlo 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 nuovo indice con una sola colonna alla colonna age nella tabella Students dello schema School. Per applicare questo consiglio, inserisci una query DDL esattamente 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 questa 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 consulente per l'indicizzazione

Puoi reimpostare il comportamento del consulente per gli indici su un'istanza rimuovendo le query monitorate. Per farlo, esegui questa funzione SQL:

SELECT google_db_advisor_reset();

AlloyDB svuota immediatamente la raccolta di query monitorate di Index Advisor.

Configurare il suggerimento sull'indicizzazione

Sebbene l'Advisor per gli indici sia progettato per funzionare con le impostazioni predefinite per la maggior parte dei casi d'uso, puoi ottimizzarne il comportamento impostando vari flag di database. Per scoprire di più, consulta la pagina di riferimento relativa ai flag dell'Advisor per l'indice.