AlloyDB per PostgreSQL offre un consulente per gli indici che monitora le query gestite regolarmente dal tuo database. Analizza periodicamente queste query per consigliare nuovi indici che possono aumentare le prestazioni delle query.
Puoi visualizzare ed eseguire query sui suoi consigli come tabella oppure richiedere un'analisi e un report on demand in qualsiasi momento.
Prima di iniziare
Prima di utilizzare il suggeritore di indici, assicurati di soddisfare i seguenti requisiti.
Attiva le estensioni richieste
Nella console Google Cloud , vai alla pagina Cluster.
Fai clic su un cluster nella colonna Nome risorsa.
Nella pagina Query Insights, fai clic su Modifica impostazioni query.
Fai clic su Abilita i suggerimenti sull'indicizzazione.
Visualizzare i suggerimenti di Index Advisor
AlloyDB esegue automaticamente l'analisi di Index Advisor periodicamente. Puoi leggere i risultati tramite due visualizzazioni tabella situate in ciascuno dei tuoi database:
google_db_advisor_recommended_indexeselenca tutti i nuovi indici consigliati per il database. Include anche le stime dello spazio di archiviazione richiesto per ogni indice e il numero di query che ogni indice può interessare.google_db_advisor_workload_reportelenca ogni query per cui il consulente consiglia uno o più nuovi indici. Ogni riga riepiloga i consigli per la query pertinente.
Ad esempio, per visualizzare i risultati dell'analisi dei suggerimenti per gli indici più recenti, formattati come tabella, esegui questa query:
SELECT * FROM google_db_advisor_recommended_indexes;
Se l'analisi più recente del consulente per gli indici 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 le informazioni nel modo che
preferisci. Ad esempio, per visualizzare un report che accoppia 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;
Richiedere manualmente un'analisi dell'indice
Anziché attendere la successiva analisi pianificata di Index Advisor, puoi richiedere ad AlloyDB di eseguire immediatamente un'analisi e visualizzare il report. Per farlo, esegui questa funzione SQL:
SELECT * FROM google_db_advisor_recommend_indexes();
Al termine dell'analisi, AlloyDB mostra 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 PostgreSQL
che esegue questo comando può influire sui suggerimenti visualizzati. Se questa query viene eseguita da postgres o da un altro utente con il ruolo alloydbsuperuser, AlloyDB mostra tutti i suggerimenti attuali di Index Advisor. In caso contrario, AlloyDB limita la visualizzazione ai consigli sugli indici in base alle query emesse dall'utente del database corrente.
Applica i suggerimenti di Index Advisor
La colonna index della visualizzazione 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
presentata. Ciò include la copia negli appunti e l'incollatura
in un prompt di 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 unico consiglio: aggiungere un nuovo indice a una sola colonna
nella colonna age della tabella Students dello schema School. Per applicare questo consiglio, inserisci una query DDL esattamente come
rappresentato nel report:
CREATE INDEX ON "School"."Students"("age");
Visualizzare le query monitorate di Index Advisor
La visualizzazione google_db_advisor_workload_statements contiene un elenco di tutte le query monitorate dal suggeritore di indici, nonché importanti metadati per ognuna, ad esempio le seguenti metriche:
- Il numero di volte in cui l'istanza ha eseguito questa query
- Il tempo totale impiegato dall'istanza per l'elaborazione di queste query
- L'ID dell'utente del database che esegue queste query
Cancella le query monitorate di Index Advisor
Puoi reimpostare il comportamento di Index Advisor su un'istanza cancellando 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.
Configura Index Advisor
Sebbene il suggeritore di indici funzioni per la maggior parte dei casi d'uso con le impostazioni predefinite, puoi ottimizzarne il comportamento impostando vari flag di database.
Ad esempio, puoi impostare il flag google_db_advisor.enable_vector_index_advisor
per consentire a Index Advisor di consigliare gli indici per le query vettoriali. Questo flag è
attivo per impostazione predefinita.
Per scoprire di più, consulta Flag di Index Advisor.