Usar o consultor de índice

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.
O consultor de índice armazena e exibe o comando 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:

  1. No console Google Cloud , acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

    .
  2. Para abrir a página Visão geral de uma instância, clique no nome da instância. .
  3. No bloco Configuração, clique em Editar configuração.
  4. Na seção Personalizar sua instância, expanda Insights de consulta.
  5. Verifique se a opção Ativar Query insights está ativada.
  6. Se ainda não estiver selecionada, escolha Ativar recursos do Enterprise Plus.
  7. Selecione Ativar o consultor de índice.
  8. Clique em Salvar.

Desativar recomendações do consultor de índice

Para desativar as recomendações do consultor de índice, faça o seguinte:

  1. No console Google Cloud , acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. No bloco Configuração, clique em Editar configuração.
  4. Na seção Personalizar sua instância, expanda Insights de consulta.
  5. Desmarque a caixa de seleção Ativar o consultor de índice.
  6. 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

  1. No console Google Cloud , acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Clique em Query Insights.
  4. As recomendações do consultor de índice são exibidas na coluna Recomendação da seção Consultas e tags mais frequentes.
  5. 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:

  1. No console Google Cloud , acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Clique em Query Insights.
  4. Na seção Consultas e tags mais frequentes, clique em Consultas.
  5. 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.

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.

Para criar um índice recomendado usando o painel Insights de consulta, faça o seguinte:

  1. No console Google Cloud , acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Clique em Query Insights.
  4. Na tabela Principais dimensões por carga do banco de dados, clique em Consultas.
  5. Clique em Criar índices para uma consulta específica.
  6. Clique em Copiar todos os comandos de índice. Os comandos CREATE INDEX são copiados para a área de transferência.
  7. Conecte-se à instância principal na linha de comando.
  8. 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");

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

  1. No console Google Cloud , acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Clique em Query Insights.
  4. Na tabela Principais dimensões por carga do banco de dados, clique em Consultas.
  5. Clique em Criar índices para uma consulta específica.
  6. Clique em Mostrar consultas afetadas.
  7. 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.

A seguir