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.
Per attivare i suggerimenti sugli indici di ricerca vettoriale per gli indici Scalable Nearest Neighbors (ScaNN), attiva il flag
scann.enable_preview_features
(anteprima). Per saperne di più, consulta Configurare i flag di database di un'istanza.
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_indexes
elenca 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_report
elenca ogni query per la quale il consulente consiglia uno o più nuovi indici. Ogni riga riepiloga i consigli per la query pertinente.google_db_advisor.enable_vector_index_advisor
consente all'estensionegoogle_db_advisor
di consigliare indici per le query vettoriali. Puoi anche attivare questo flag utilizzando il flagscann.enable_preview_features
(in anteprima).
Ad esempio, per visualizzare i risultati dell'analisi più recente dei suggerimenti per gli indici, formattati come tabella, esegui questa query:
SELECT * FROM google_db_advisor_recommended_indexes;
Se l'analisi più recente di Index Advisor non trova consigli, 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 consigli 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 suggerimenti per gli 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 che l'istanza dedica all'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 sia progettato per funzionare per la maggior parte dei casi d'uso con le impostazioni predefinite, puoi perfezionarne il comportamento impostando vari flag di database. Per scoprire di più, consulta Flag di Index Advisor.