Esta página descreve o consultor de índices do Cloud SQL para PostgreSQL e como pode ver e aplicar as respetivas recomendações de índices.
O Cloud SQL para PostgreSQL oferece um consultor de índices totalmente gerido que monitoriza as consultas que a sua base de dados processa regularmente. Periodicamente, o consultor de índices analisa estas consultas para recomendar novos índices que podem melhorar o desempenho das consultas. O consultor de índices permite-lhe detetar e corrigir problemas de desempenho com sistemas e consultas.
Como funciona o consultor de índice?
O consultor de índices ajuda a melhorar o processamento de consultas através do seguinte:
- Recomendar um conjunto de índices com comandos SQL para criar índices.
- Fornecer dados para ajudar a avaliar os índices recomendados, por exemplo, o tamanho de armazenamento estimado e o impacto dos índices numa consulta.
CREATE INDEX
que contém o nome da base de dados, o nome do esquema, o nome da tabela e os nomes das colunas. As consultas monitorizadas são todas consultas normalizadas com todos os literais removidos.
As recomendações de índice são encriptadas em repouso.
Limitações
O consultor de índices do Cloud SQL para PostgreSQL tem as seguintes limitações:
- O consultor de índices fornece apenas
CREATE INDEX
recomendações. - O consultor de índices não suporta instâncias com as seguintes configurações:
- Instâncias da edição Enterprise do Cloud SQL
- Instâncias de réplica de leitura
Antes de começar
Para obter recomendações do Consultor de índices, tem de usar a edição Cloud SQL Enterprise Plus e ativar as estatísticas de consultas para a edição Cloud SQL Enterprise Plus para a sua instância do Cloud SQL.
Funções e autorizações necessárias
Para receber as autorizações de que
precisa para obter recomendações do Consultor de índices,
peça ao seu administrador para lhe conceder a função de IAM
Visualizador do Cloud SQL (roles/cloudsql.viewer
)
no projeto que aloja a instância do Cloud SQL.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém as autorizações necessárias para obter recomendações do Consultor de índices. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para receber recomendações do Consultor de índices:
-
databaseinsights.recommendations.query
-
databaseinsights.resourceRecommendations.query
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Ative as recomendações do consultor de índices
Para ativar as recomendações do assessor de índices, faça o seguinte:
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
. - Para abrir a página Vista geral de uma instância, clique no nome da instância. .
- No mosaico Configuração, clique em Editar configuração.
- Na secção Personalize a sua instância, expanda Estatísticas de consultas.
- Certifique-se de que a opção Ativar estatísticas de consultas está ativada.
- Se ainda não estiver selecionada, selecione Ativar funcionalidades do Enterprise Plus.
- Selecione Ativar consultor de índice.
- Clique em Guardar.
Desative as recomendações do consultor de índices
Para desativar as recomendações do consultor de índices, faça o seguinte:
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Para abrir a página Vista geral de uma instância, clique no nome da instância.
- No mosaico Configuração, clique em Editar configuração.
- Na secção Personalize a sua instância, expanda Estatísticas de consultas.
- Desmarque a caixa de verificação Ativar consultor de índices.
- Clique em Guardar.
Veja as recomendações do consultor de índices
O Cloud SQL executa automaticamente a análise do Index Advisor periodicamente. Para ver as recomendações do consultor de índices, use o painel de controlo Estatísticas de consultas. Também pode ver e consultar as recomendações do Consultor de índices como uma tabela ou pedir uma análise e um relatório a pedido em qualquer altura.
Veja e filtre recomendações no painel de controlo das estatísticas de consultas
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Para abrir a página Vista geral de uma instância, clique no nome da instância.
- Clique em Estatísticas de consultas.
- As recomendações do consultor de índices são apresentadas na coluna Recomendação da secção Principais consultas e etiquetas.
- Opcional: para ver apenas as consultas com recomendações
CREATE INDEX
, adicione um filtro para Recomendação: criar índices.
Veja recomendações para uma consulta
Para ver recomendações de índice para uma consulta específica, siga estes passos:
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Para abrir a página Vista geral de uma instância, clique no nome da instância.
- Clique em Estatísticas de consultas.
- Na secção Principais consultas e etiquetas, clique em Consultas.
- Para ver os detalhes das recomendações de uma consulta, faça uma das seguintes ações:
- Clique numa consulta para saber mais sobre as recomendações para a consulta selecionada, incluindo as seguintes informações:
- Impacto no desempenho (elevado, médio e baixo): a velocidade de consulta estimada após a criação de todos os índices recomendados.
- Recomendações: crie recomendações de índice.
- Tabelas afetadas: o número de tabelas que serão afetadas quando os índices forem criados.
- Armazenamento adicional estimado necessário: o tamanho de armazenamento estimado necessário para criar todos os índices recomendados.
- Número de consultas afetadas: o número total de consultas no conjunto de trabalho afetadas pelas recomendações de índices. Um índice pode beneficiar várias consultas.
- Clique em Criar índices para uma consulta específica para saber recomendações detalhadas sobre a criação de índices para melhorar o desempenho das consultas.
- Clique numa consulta para saber mais sobre as recomendações para a consulta selecionada, incluindo as seguintes informações:
Veja as recomendações como uma vista de tabela de base de dados
Pode ler os resultados através das seguintes vistas de tabela localizadas em cada uma das suas bases de dados:google_db_advisor_recommended_indexes
: apresenta todos os novos índices recomendados para cada 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.
Uma vez que todos estes relatórios existem como visualizações de bases de dados normais, pode escrever consultas que filtrem ou apresentem estas informações. 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 pela próxima análise agendada do consultor de índices, pode pedir ao Cloud SQL for PostgreSQL que execute uma análise imediatamente e apresente o respetivo relatório. Para o Cloud SQL para PostgreSQL, tem de aguardar, pelo menos, 15 minutos após ativar o consultor de índices para executar uma análise manual. Para o fazer, execute esta função SQL:
SELECT * FROM google_db_advisor_recommend_indexes();
Após a conclusão da análise, o Cloud SQL for PostgreSQL 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 que executa este comando pode afetar as recomendações apresentadas. O Cloud SQL para PostgreSQL limita a apresentação de recomendações de índices com base em consultas emitidas pelo utilizador da base de dados atual.
Crie índices recomendados
Pode criar índices recomendados a partir do painel de controlo Estatísticas de consultas ou a partir de uma vista de tabela da base de dados.
Crie um índice recomendado com o painel de controlo Estatísticas de consultas
Para criar um índice recomendado através do painel de controlo Estatísticas de consultas, faça o seguinte:
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Para abrir a página Vista geral de uma instância, clique no nome da instância.
- Clique em Estatísticas de consultas.
- Na tabela Principais dimensões por carga da base de dados, clique em Consultas.
- Clique em Criar índices para uma consulta específica.
- Clique em Copiar todos os comandos de índice. Os comandos
CREATE INDEX
são copiados para a área de transferência. - Ligue-se à instância principal na linha de comandos.
Para criar os índices recomendados, execute os comandos que foram copiados para a área de transferência, por exemplo:
CREATE INDEX ON "public"."demo_order" ("customer_id");
Crie um índice recomendado com uma vista de tabela da base de dados
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 índice de coluna única na coluna age
na tabela Students
do esquema School
. Para aplicar este conselho, introduza uma consulta DDL conforme representado no relatório:
CREATE INDEX ON "School"."Students"("age");
Veja as consultas afetadas
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Para abrir a página Vista geral de uma instância, clique no nome da instância.
- Clique em Estatísticas de consultas.
- Na tabela Principais dimensões por carga da base de dados, clique em Consultas.
- Clique em Criar índices para uma consulta específica.
- Clique em Mostrar consultas afetadas.
- Clique numa consulta para saber detalhes sobre a consulta afetada.
Veja as consultas monitorizadas pelo 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 cada 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 Cloud SQL para PostgreSQL esvazia imediatamente a coleção de consultas monitorizadas do Index Advisor.