Nesta página, descrevemos o consultor de índice do Cloud SQL para PostgreSQL e como é possível ver e aplicar as recomendações de índice.
O Cloud SQL para PostgreSQL oferece um consultor de índice totalmente gerenciado que monitora regularmente as consultas processadas pelo seu banco de dados. Periodicamente, o consultor de índice analisa essas consultas para recomendar novos índices que podem melhorar o desempenho da consulta. O consultor de índice permite detectar e corrigir problemas de desempenho com sistemas e consultas.
Como funciona o consultor de índice?
O consultor de índice ajuda a melhorar o processamento de consultas realizando as seguintes ações:
- Recomendar um conjunto de índices com comandos SQL para criar índices.
- Fornece dados para ajudar você a avaliar os índices recomendados, como o tamanho do armazenamento estimado e o impacto dos índices em uma consulta.
CREATE INDEX
que contém os nomes do banco de dados, do esquema, da tabela e das colunas. Todas as consultas monitoradas são normalizadas com todos os literais removidos.
As recomendações de índice são criptografadas em repouso.
Limitações
O consultor de índice do Cloud SQL para PostgreSQL tem as seguintes limitações:
- O consultor de índice fornece apenas recomendações
CREATE INDEX
. - O consultor de índice não é compatível com instâncias com as seguintes configurações:
- Instâncias do Cloud SQL Enterprise Edition
- Instâncias de réplica de leitura
Antes de começar
Para receber recomendações do Index Advisor, use a edição Cloud SQL Enterprise Plus e ative os insights de consultas para o Cloud SQL Enterprise Plus na sua instância do Cloud SQL.
Papéis e permissões necessárias
Para receber as permissões necessárias para acessar as recomendações do Index Advisor,
peça ao administrador para conceder a você o papel do IAM de
Leitor do Cloud SQL (roles/cloudsql.viewer
)
no projeto que hospeda a instância do Cloud SQL.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém as permissões necessárias para receber recomendações do Index Advisor. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para receber recomendações do consultor de índice:
-
databaseinsights.recommendations.query
-
databaseinsights.resourceRecommendations.query
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Ativar recomendações do consultor de índice
Para ativar as recomendações do consultor de índice, faça o seguinte:
-
No console Google Cloud , acesse a página Instâncias do Cloud SQL.
. - Para abrir a página Visão geral de uma instância, clique no nome da instância. .
- No bloco Configuração, clique em Editar configuração.
- Na seção Personalizar sua instância, expanda Insights de consulta.
- Verifique se a opção Ativar Query insights está ativada.
- Se ainda não estiver selecionada, escolha Ativar recursos do Enterprise Plus.
- Selecione Ativar o consultor de índice.
- Clique em Salvar.
Desativar recomendações do consultor de índice
Para desativar as recomendações do consultor de índice, faça o seguinte:
-
No console Google Cloud , acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- No bloco Configuração, clique em Editar configuração.
- Na seção Personalizar sua instância, expanda Insights de consulta.
- Desmarque a caixa de seleção Ativar o consultor de índice.
- Clique em Salvar.
Ver recomendações do consultor de índice
O Cloud SQL executa automaticamente a análise do consultor de índice periodicamente. Para ver as recomendações do consultor de índice, use o painel do Query Insights. Também é possível ver e consultar as recomendações do consultor de índice como uma tabela ou solicitar uma análise e um relatório sob demanda a qualquer momento.
Ver e filtrar recomendações no painel do Query insights
-
No console Google Cloud , acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Clique em Query Insights.
- As recomendações do consultor de índice são exibidas na coluna Recomendação da seção Consultas e tags mais frequentes.
- Opcional: para ver somente as consultas com recomendações
CREATE INDEX
, adicione um filtro para Recomendação: criar índices.
Ver recomendações para uma consulta
Para ver recomendações de índice para uma consulta específica, siga estas etapas:
-
No console Google Cloud , acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Clique em Query Insights.
- Na seção Consultas e tags mais frequentes, clique em Consultas.
- Para saber os detalhes da recomendação sobre uma consulta, siga um destes procedimentos:
- Clique em uma consulta para saber mais sobre as recomendações para a consulta selecionada, incluindo as seguintes informações:
- Impacto no desempenho (alto, 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 estimado adicional 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 na carga de trabalho afetadas pelas recomendações de índice. Um índice pode beneficiar várias consultas.
- Clique em Criar índices para uma consulta específica e confira recomendações detalhadas sobre como criar índices para melhorar o desempenho da consulta.
- Clique em uma consulta para saber mais sobre as recomendações para a consulta selecionada, incluindo as seguintes informações:
Ver recomendações como uma visualização em tabela de banco de dados
É possível ler os resultados nas visualizações em tabela a seguir, localizadas em cada um dos bancos de dados:google_db_advisor_recommended_indexes
: lista todos os índices novos recomendados para cada banco 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 índices novos. Cada linha resume as recomendações para a consulta relevante.
Por exemplo, para ver os resultados da análise mais recente da recomendação de índice, formatados como uma tabela, execute esta consulta:
SELECT * FROM google_db_advisor_recommended_indexes;
Se a análise mais recente do consultor de índice não encontrar recomendações, essa consulta retornará uma tabela sem linhas.
Como todos esses relatórios existem como visualizações de banco de dados comuns, é possível escrever consultas que filtram ou apresentam essas informações. Por exemplo, para ver um relatório que combina índices recomendados com a consulta completa associada, mescle as visualizações
google_db_advisor_workload_report
e
google_db_advisor_workload_statements
nas respectivas 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;
Solicitar manualmente uma análise de índice
Em vez de esperar pela próxima análise programada do consultor de índice, solicite que o Cloud SQL para PostgreSQL execute uma análise imediatamente e exiba o relatório. No Cloud SQL para PostgreSQL, é necessário aguardar pelo menos 15 minutos após a ativação do consultor de índice para executar uma análise manual. Para fazer isso, execute esta função SQL:
SELECT * FROM google_db_advisor_recommend_indexes();
Após a conclusão da análise, o Cloud SQL para PostgreSQL exibe um relatório em formato de tabela com a descrição e as necessidades estimadas de armazenamento de todos os índices recomendados. Se a análise não encontrar novos índices para recomendar, a visualização não conterá linhas.
Lembre-se que a função do usuário que executa esse comando pode afetar as recomendações exibidas. O Cloud SQL para PostgreSQL limita a exibição a recomendações de índice com base nas consultas emitidas pelo usuário atual do banco de dados.
Criar índices recomendados
É possível criar índices recomendados no painel "Insights de consulta" ou em uma visualização em tabela do banco de dados.
Criar um índice recomendado usando o painel do Query Insights
Para criar um índice recomendado usando o painel Insights de consulta, faça o seguinte:
-
No console Google Cloud , acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Clique em Query Insights.
- Na tabela Principais dimensões por carga do banco 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. - Conecte-se à instância principal na linha de comando.
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");
Criar um índice recomendado usando uma visualização em tabela de banco de dados
A coluna index
da visualização google_db_advisor_recommended_indexes
contém, em cada linha, uma instrução DDL CREATE INDEX
completa do PostgreSQL para gerar o índice recomendado nessa linha.
Para aplicar a recomendação dessa linha, execute a instrução DDL exatamente como apresentada. Isso inclui copiar para a área de transferência e colá-lo em um comando psql
.
Por exemplo, considere esta saída da execução manual de uma análise, usando a consulta descrita na seção anterior:
index | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
CREATE INDEX ON "School"."Students"("age") | 3
(1 row)
Esse 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 essa recomendação, insira uma consulta DDL conforme representado no relatório:
CREATE INDEX ON "School"."Students"("age");
Ver consultas afetadas
-
No console Google Cloud , acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Clique em Query Insights.
- Na tabela Principais dimensões por carga do banco de dados, clique em Consultas.
- Clique em Criar índices para uma consulta específica.
- Clique em Mostrar consultas afetadas.
- Clique em uma consulta para ver os detalhes da consulta afetada.
Ver as consultas rastreadas do consultor de índice
A visualização google_db_advisor_workload_statements
contém uma lista de todas as consultas que o consultor de índice rastreou, 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 para processar essas consultas
- O ID do usuário do banco de dados que executa essas consultas
Limpar as consultas rastreadas do consultor de índice
Para redefinir o comportamento do consultor de índice em uma instância, limpe as consultas rastreadas. Para fazer isso, execute esta função SQL:
SELECT google_db_advisor_reset();
O Cloud SQL para PostgreSQL esvazia imediatamente a coleção de consultas rastreadas do consultor de índice.