Use o consultor de índices

O AlloyDB para PostgreSQL oferece um consultor de índices que acompanha as consultas que a sua base de dados processa regularmente. Periodicamente, analisa estas consultas para recomendar novos índices que podem aumentar o desempenho das consultas.

Pode ver e consultar as respetivas recomendações como uma tabela ou pedir uma análise e um relatório a pedido em qualquer altura.

Veja as recomendações do consultor de índices

O AlloyDB executa automaticamente a análise do consultor de índices periodicamente. Pode ler os resultados através de duas vistas de tabela localizadas em cada uma das suas bases de dados:

  • google_db_advisor_recommended_indexes lista todos os novos índices recomendados para a respetiva base de dados. Também inclui estimativas do armazenamento necessário para cada índice e o número de consultas que cada índice pode afetar.

  • google_db_advisor_workload_report lista cada consulta para a qual o consultor recomenda um ou mais novos índices. Cada linha resume as recomendações para a consulta relevante.

Por exemplo, para ver os resultados da análise de recomendações de índice mais recente, formatados como uma tabela, execute esta consulta:

SELECT * FROM google_db_advisor_recommended_indexes;

Se a análise mais recente do consultor de índices não encontrar recomendações, esta consulta devolve uma tabela sem linhas.

Como todos estes relatórios existem como visualizações de bases de dados normais, pode escrever consultas que filtrem ou apresentem informações da forma que quiser. Por exemplo, para ver um relatório que associa os índices recomendados à respetiva consulta associada completa, junte as vistas google_db_advisor_workload_report e google_db_advisor_workload_statements nas respetivas colunas 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;

Peça manualmente uma análise de índice

Em vez de aguardar a próxima análise agendada do consultor de índices, pode pedir ao AlloyDB para executar uma análise imediatamente e apresentar o respetivo relatório. Para o fazer, execute esta função SQL:

SELECT * FROM google_db_advisor_recommend_indexes();

Após a conclusão da análise, o AlloyDB apresenta um relatório formatado em tabela com a descrição e as necessidades de armazenamento estimadas de todos os índices recomendados. Se a análise não encontrar novos índices para recomendar, a vista não contém linhas.

Tenha em atenção que a função de utilizador do PostgreSQL que executa este comando pode afetar as recomendações apresentadas. Se esta consulta for executada por postgres ou outro utilizador com a função alloydbsuperuser, o AlloyDB apresenta todas as recomendações atuais do Index Advisor. Caso contrário, o AlloyDB limita a respetiva apresentação a recomendações de índices com base em consultas emitidas pelo utilizador da base de dados atual.

Aplique as recomendações do consultor de índices

A coluna index da vista google_db_advisor_recommended_indexes contém, em cada linha, uma declaração CREATE INDEX DDL do PostgreSQL completa para gerar o índice recomendado nessa linha.

Para aplicar a recomendação dessa linha, execute a declaração DDL exatamente como apresentada. Isto inclui copiá-lo para a área de transferência e colá-lo num comando do psql.

Por exemplo, considere este resultado da execução manual de uma análise, usando a consulta descrita na secção anterior:

                    index                   | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
 CREATE INDEX ON "School"."Students"("age") |                            3
(1 row)

Este relatório contém uma única recomendação: adicionar um novo índice de coluna única na coluna age na tabela Students do esquema School. Para aplicar estes conselhos, introduza uma consulta de LDD exatamente como representada no relatório:

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

Veja as consultas monitorizadas do consultor de índices

A vista google_db_advisor_workload_statements contém uma lista de todas as consultas que o consultor de índices acompanhou, bem como metadados importantes para cada uma, como as seguintes métricas:

  • O número de vezes que a instância executou esta consulta
  • O tempo total que a instância gasta a processar estas consultas
  • O ID do utilizador da base de dados que executa estas consultas

Limpe as consultas monitorizadas do consultor de índices

Pode repor o comportamento do consultor de índices numa instância limpando as respetivas consultas acompanhadas. Para o fazer, execute esta função SQL:

SELECT google_db_advisor_reset();

O AlloyDB esvazia imediatamente a coleção de consultas monitorizadas do Index Advisor.

Configure o consultor de índices

Embora o consultor de índices tenha sido concebido para funcionar na maioria dos exemplos de utilização com as suas definições predefinidas, pode otimizar o respetivo comportamento definindo várias flags da base de dados. Para saber mais, consulte a página de referência Indicadores do consultor de índices.