Utilizzare Index Advisor

AlloyDB per PostgreSQL offre un Index Advisor che monitora le query gestite regolarmente dal database. Periodicamente, analizza queste query per consigliare nuovi indici che possono aumentarne le prestazioni.

Puoi utilizzare i suggerimenti di Index Advisor nei seguenti modi:

Per scoprire di più su come funziona Index Advisor, consulta la panoramica di Index Advisor.

Prima di iniziare

Prima di utilizzare Index Advisor, assicurati di soddisfare i seguenti requisiti.

Attiva le estensioni richieste

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic su un cluster nella colonna Nome risorsa.

  3. Nella pagina Query Insights, fai clic su Modifica impostazioni query.

  4. Fai clic su Abilita Index Advisor.

Visualizza i suggerimenti di Index Advisor

AlloyDB esegue automaticamente l'analisi di Index Advisor a intervalli regolari. Puoi visualizzare i suggerimenti per gli indici risultanti nella dashboard Query Insights nella console Google Cloud o eseguendo query direttamente sulle viste delle tabelle del database.

Visualizza i suggerimenti in Query Insights

AlloyDB integra Index Advisor con Query Insights e Query Insights avanzato nella consoleGoogle Cloud .

Quando Index Advisor identifica indici di ricerca vettoriale B-tree o ScaNN mancanti che possono migliorare le prestazioni delle query, la dashboard Query Insights mostra i suggerimenti e i prompt di Index Advisor nelle seguenti visualizzazioni:

  • Nella pagina Query Insights, nella sezione Dimensioni principali per carico del database, seleziona la scheda Query. Nella tabella, la colonna Suggerimenti mostra un link Crea indici accanto a qualsiasi query che contiene suggerimenti di Index Advisor. Puoi anche aggiungere un filtro per Suggerimento: crea indici per visualizzare solo le query con suggerimenti di indice.

  • Se selezioni una query dalla tabella Query, si apre la pagina Dettagli query, che mostra una scheda Suggerimento per l'indice nella visualizzazione del piano di query di esempio e una tabella Indici consigliati. Queste visualizzazioni mostrano l'impatto stimato sulle prestazioni (alto, medio o basso), il tipo di indice consigliato e la tabella di destinazione, lo spazio di archiviazione aggiuntivo stimato necessario, il numero di tabelle interessate e il numero di query interessate.

  • Se fai clic su Crea indici (o su Visualizza dettagli in un suggerimento), si apre il riquadro Crea indici per migliorare le prestazioni delle query. In questo riquadro puoi esaminare le istruzioni DDL CREATE INDEX consigliate, visualizzare il miglioramento stimato del tempo di esecuzione, fare clic su Mostra query interessate per esaminare tutte le query del workload che traggono vantaggio dall'indice consigliato e copiare i comandi o aprirli direttamente in AlloyDB Studio.

Per istruzioni passo passo su come configurare la frequenza di aggiornamento dei suggerimenti, filtrare i suggerimenti e creare gli indici consigliati nella consoleGoogle Cloud , consulta Utilizza l'Index Advisor di AlloyDB per PostgreSQL con Query Insights e Migliora le prestazioni delle query utilizzando le funzionalità avanzate di Query Insights.

Visualizza i suggerimenti utilizzando le viste del database

Puoi anche leggere i risultati di Index Advisor tramite due visualizzazioni tabella situate in ciascuno dei tuoi database:

  • google_db_advisor_recommended_indexes elenca tutti i nuovi indici consigliati per il suo database. Include anche le stime dello spazio di archiviazione richiesto per ogni indice e il numero di query che ogni indice può influenzare.

  • google_db_advisor_workload_report elenca ogni query per la quale l'advisor consiglia uno o più nuovi indici. Ogni riga riassume i suggerimenti per la query pertinente.

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 suggerimenti, questa query restituisce una tabella senza righe.

Poiché tutti questi report esistono come normali viste di database, puoi scrivere query che filtrano o presentano le informazioni nel modo che preferisci. Ad esempio, per visualizzare un report che associa gli indici consigliati alla query completa associata, unisci le viste 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;

Richiedi 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 visualizza un report in formato tabella con la descrizione e le esigenze di archiviazione stimate degli 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 visualizza tutti i suggerimenti attuali di Index Advisor. In caso contrario, AlloyDB limita la visualizzazione ai suggerimenti per gli indici basati sulle query eseguite dall'utente del database corrente.

Applica i suggerimenti di Index Advisor

Nella dashboard Query Insights della console Google Cloud , puoi fare clic su Crea indici per una query, fare clic su Copia tutti i comandi dell'indice (o Apri i comandi in Studio per aprire le istruzioni CREATE INDEX in AlloyDB Studio) ed eseguire i comandi nell'istanza principale. Per istruzioni passo passo, consulta Crea indici consigliati in Query Insights.

Quando esegui una query direttamente su una vista del database, 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 di quella 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 suggerimento: l'aggiunta di un nuovo indice a colonna singola nella colonna age della tabella Students dello schema School. Per applicare questo consiglio, inserisci una query DDL esattamente come rappresentata nel report:

CREATE INDEX ON "School"."Students"("age");

Visualizza le query monitorate da Index Advisor

La vista google_db_advisor_workload_statements contiene un elenco di tutte le query monitorate da Index Advisor, nonché i metadati importanti per ciascuna, come 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 Index Advisor 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 saperne di più, consulta Flag di Index Advisor.

Passaggi successivi