Esta página descreve o consultor de índice do Cloud SQL para PostgreSQL e como você pode visualizar e aplicar suas 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 das consultas. O consultor de índice permite detectar e corrigir problemas de desempenho em sistemas e consultas.
Como funciona o consultor de índice?
O consultor de índice ajuda você a melhorar o processamento de consultas fazendo o seguinte:
- Recomendar um conjunto de índices com comandos SQL para criar índices.
- Forneça dados para ajudar você a avaliar índices recomendados, por exemplo, tamanho estimado de armazenamento e impacto dos índices em uma consulta.
CREATE INDEX
contendo o nome do banco de dados, o nome do esquema, o nome da tabela e os nomes das colunas. As consultas rastreadas são todas consultas normalizadas com todos os literais removidos.As recomendações do í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 de
CREATE INDEX
. - O consultor de índice não oferece suporte a instâncias com as seguintes configurações:
- Instâncias da edição Enterprise do Cloud SQL
- Ler instâncias de réplica
Antes de começar
Para obter recomendações do consultor de índice, você deve usar a edição Cloud SQL Enterprise Plus e habilitar o query insights para a edição Cloud SQL Enterprise Plus para sua instância do Cloud SQL.
Funções e permissões necessárias
Para obter as permissões necessárias para obter recomendações do consultor de indexação, peça ao administrador para lhe conceder a função do IAM " Visualizador do Cloud SQL" ( roles/cloudsql.viewer
) no projeto que hospeda a instância do Cloud SQL. Para obter mais informações sobre a concessão de funções, consulte Gerenciar acesso a projetos, pastas e organizações .
Esta função predefinida contém as permissões necessárias para obter recomendações do consultor de índice. Para ver 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 obter recomendações do consultor de índice:
-
databaseinsights.recommendations.query
-
databaseinsights.resourceRecommendations.query
Você também pode obter essas permissões com funções personalizadas ou outras funções predefinidas .
Habilitar recomendações do consultor de índice
Para habilitar as recomendações do consultor de índice, faça o seguinte:
No Google Cloud console, 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 da consulta .
- Certifique-se de que a opção Habilitar insights de consulta esteja habilitada.
- Se ainda não estiver selecionado, selecione Habilitar recursos do Enterprise Plus .
- Selecione Habilitar consultor de índice .
- Clique em Salvar .
Desativar recomendações do consultor de índice
Para desabilitar as recomendações do consultor de índice, faça o seguinte:
No Google Cloud console, 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 da consulta .
- Desmarque a caixa de seleção Habilitar consultor de índice .
- Clique em Salvar .
Ver recomendações do consultor de índice
O Cloud SQL executa automaticamente a análise do Index Advisor periodicamente. Para visualizar as recomendações do Index Advisor, use o painel de insights da consulta. Você também pode visualizar e consultar as recomendações do Index Advisor como uma tabela ou solicitar uma análise e um relatório sob demanda a qualquer momento.
Visualizar e filtrar recomendações no painel de insights da consulta
No Google Cloud console, 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 Insights de consulta .
- As recomendações do consultor de índice são exibidas na coluna Recomendação da seção Principais consultas e tags .
- Opcional: para visualizar apenas as consultas com recomendações
CREATE INDEX
, adicione um filtro para Recomendação: Criar Índices .
Ver recomendações para uma consulta
Para visualizar recomendações de índice para uma consulta específica, siga estas etapas:
No Google Cloud console, 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 Insights de consulta .
- Na seção Principais consultas e tags , clique em Consultas .
- Para obter detalhes de recomendação para 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 estimada da consulta após a criação de todos os índices recomendados.
- Recomendações : Crie recomendações de índice.
- Tabelas impactadas : o número de tabelas que serão impactadas quando os índices forem criados.
- Armazenamento estimado adicional necessário : o tamanho estimado de armazenamento necessário para criar todos os índices recomendados.
- Número de consultas impactadas : o número total de consultas na carga de trabalho impactadas pelas recomendações do índice. Um índice pode beneficiar diversas consultas.
- Clique em Criar índices para uma consulta específica para aprender 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:
Exibir recomendações como uma visualização de tabela de banco de dados
Você pode ler os resultados por meio das seguintes visualizações de tabela localizadas em cada um dos seus bancos de dados:google_db_advisor_recommended_indexes
: lista todos os novos índices 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 novos índices. Cada linha resume as recomendações para a consulta relevante.
Por exemplo, para ver os resultados da análise de recomendação 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 índice não encontrar recomendações, essa consulta retornará uma tabela sem linhas.
Como todos esses relatórios existem como visualizações comuns de banco de dados, você pode escrever consultas que filtrem ou apresentem essas informações. Por exemplo, para ver um relatório que combina índices recomendados com a consulta completa associada, una as visualizações google_db_advisor_workload_report
e google_db_advisor_workload_statements
em suas 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 aguardar a próxima análise agendada do consultor de índice, você pode solicitar que o Cloud SQL para PostgreSQL execute uma análise imediatamente e exiba seu relatório. Para o Cloud SQL para PostgreSQL, você precisa aguardar pelo menos 15 minutos após habilitar o consultor de índice para executar uma análise manual. Para 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.
Observe que a função do usuário que executa este comando pode afetar as recomendações exibidas. O Cloud SQL para PostgreSQL limita sua exibição a recomendações de índice com base em consultas emitidas pelo usuário atual do banco de dados.
Criar índices recomendados
Você pode criar índices recomendados no painel de insights da consulta ou em uma exibição de tabela de banco de dados.
Crie um índice recomendado usando o painel de insights da consulta
Para criar um índice recomendado usando o painel de insights da consulta, faça o seguinte:
No Google Cloud console, 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 Insights de consulta .
- 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
serão copiados para a área de transferência. - Conecte-se à instância primária na linha de comando.
Para criar os índices recomendados, execute os comandos que foram copiados para a sua área de transferência, por exemplo:
CREATE INDEX ON "public"."demo_order" ("customer_id");
Crie um índice recomendado usando uma visualização de tabela de banco de dados
A coluna de index
da exibiçã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 copiá-la para a área de transferência e colá-la em um prompt 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)
Este relatório contém uma única recomendação: adicionar um índice de coluna única na coluna age
da 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");
Exibir consultas impactadas
No Google Cloud console, 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 Insights de consulta .
- 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 impactadas .
- Clique em uma consulta para saber detalhes sobre a consulta impactada.
Exibir consultas rastreadas pelo consultor de índice
A exibiçã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 processando essas consultas
- O ID do usuário do banco de dados que executa essas consultas
Limpar as consultas rastreadas do consultor de índice
Você pode redefinir o comportamento do consultor de índice em uma instância limpando suas consultas rastreadas. Para 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.