Melhorar a performance da consulta usando os insights de consulta aprimorados para o AlloyDB

Esta página descreve como usar os Query Insights aprimorados para detectar e analisar problemas de desempenho de consulta quase em tempo real para instâncias primárias e de pool de leitura. Para uma visão geral dos Query Insights aprimorados, consulte Visão geral dos Insights de consulta aprimorados.

Para saber como usar os Query Insights padrão, consulte Melhorar o desempenho da consulta usando os insights de consulta.

Você pode usar a assistência do Gemini em bancos de dados para monitorar e resolver problemas dos seus recursos do AlloyDB. Para mais informações, consulte Monitorar e resolver problemas com a assistência do Gemini.

Antes de começar

Para acessar o painel "Query Insights", ative o acesso ao AlloyDB para PostgreSQL no seu projeto do Google Cloud.

Funções exigidas

Para usar os Query Insights aprimorados, você precisa de permissões para fazer o seguinte:

  • Para acessar Query Insights aprimorados, você precisa ter permissões para acessar o painel "Insights de consulta do AlloyDB".
  • Para editar as configurações Query Insights aprimorados, você precisa de permissões para atualizar instâncias do AlloyDB.

Para receber essas permissões, peça ao administrador para conceder a você um dos seguintes papéis:

  • Leitor básico (roles/viewer)
  • Leitor do Database Insights (roles/databaseinsights.viewer)

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Ativar o Query Insights aprimorado

  1. Configure o Gemini nos bancos de dados.

  2. No console do Google Cloud, acesse a página Clusters.

    Acessar Clusters

  3. Na lista de clusters e instâncias, clique em uma instância.

  4. Clique em Query Insights.

  5. Escolha o banco de dados e o usuário.

  6. Clique em Editar configurações.

  7. Ative os Query Insights aprimorados.

  8. Se você proteger seu projeto do Google Cloud com o VPC Service Controls, adicione a API databaseinsights.googleapis.com ao perímetro de serviço como um serviço restrito.

  9. Salve as alterações. Isso reinicia a instância.

Depois que os Query Insights aprimorados forem ativados, você poderá editar as configurações deles.

Editar configurações dos Query Insights aprimorados

  1. No console do Google Cloud, acesse a página Clusters.

    Acessar Clusters

  2. Na lista de clusters e instâncias, clique em uma instância.

  3. Clique em Query Insights.

  4. Escolha o banco de dados e o usuário.

  5. Clique em Editar configurações e selecione ou desmarque uma das seguintes configurações:

    • Ative a análise de eventos de espera. A análise de eventos de espera pode ajudar a identificar e resolver problemas de desempenho no seu banco de dados. Um evento de espera é um componente que causa um atraso no processamento de uma operação relacionada a uma consulta.
    • Armazenar comentários de consulta. Confira os comentários de qualquer consulta investigada, como parte do tamanho da consulta, para entender melhor o contexto. Não é necessário usar memória extra. Caso seus comentários tenham informações sensíveis, tome cuidado com o acesso dos usuários.
    • Armazene tags de aplicativos. Ative para saber quais APIs e rotas de modelo-visualização-controlador estão fazendo solicitações e agrupe esses dados para gerar métricas.
    • Personalize o tamanho da consulta. É possível mudar o limite padrão de tamanho da consulta, de 256 bytes até 100 KB. Consultas mais longas precisam de mais memória. Para mudar o tamanho da consulta, é preciso reiniciar a instância.
    • Ative os planos de consulta e configure a taxa de amostragem. Os planos de consulta exibem as operações usadas para concluir uma amostra de consulta. A taxa de amostragem determina quantas amostras de consulta podem ser capturadas por minuto em todos os bancos de dados. Taxas mais altas precisam de mais memória.
    • Ative as recomendações. Mostre recomendações de criação de índice na página do Query Insights de um cluster.
  6. Salve as alterações.

Detectar e diagnosticar problemas de desempenho na consulta

Você pode usar os Query Insights aprimorados para detectar e diagnosticar problemas de performance. O painel "Query Insights" aprimorado mostra a carga do banco de dados, que é uma medida do trabalho (em segundos de CPU) que as consultas executadas no banco de dados selecionado realizam ao longo do tempo. Cada consulta em execução está usando ou aguardando recursos. A carga do banco de dados é a proporção entre o tempo gasto por todas as consultas concluídas em uma determinada janela de tempo, em tempo real.

Conferir a medida do trabalho realizado pelas consultas executadas

O gráfico de carga do banco de dados mostra a medida do trabalho realizado (em segundos de CPU) por todas as consultas executadas no banco de dados, dividida pela dimensão selecionada. A carga do banco de dados é dividida nos dados de distribuição selecionados no menu suspenso do gráfico.

É possível detalhar a carga do banco de dados em qualquer uma das seguintes dimensões:

  • Consulta
  • Tipo de evento de espera
  • Evento de espera
  • Banco de dados
  • Usuário

Para conferir o trabalho concluído pelas consultas executadas no seu banco de dados, siga estas etapas:

  1. No console do Google Cloud, acesse a página Clusters.

    Acessar Clusters

  2. Na lista de clusters e instâncias, clique em uma instância.

  3. Clique em Query Insights.

  4. Escolha o banco de dados e o usuário.

  5. Escolha o tempo de execução total para mostrar os dados, por exemplo, 1 ou 6 horas ou um período personalizado.

  6. No menu suspenso Database Load by execution time, escolha a dimensão que você quer investigar. Dependendo da dimensão escolhida, o gráfico mostra como ela contribui para a carga geral do banco de dados. Por exemplo, se você selecionar a dimensão Eventos de espera no menu suspenso do gráfico de carga do banco de dados, o detalhamento de todos os eventos de espera que ocorreram durante o período selecionado para o banco de dados e o usuário selecionado será exibido no gráfico de carga do banco de dados.

    O gráfico de carga do banco de dados mostra dados para todos os nove tipos de evento de espera e os eventos de espera aceitos no PostgreSQL. Dependendo do número de eventos e tipos de espera, os dez principais eventos e tipos de espera que contribuem são mostrados. Se houver mais de dez eventos de espera, os nove principais serão exibidos, e os demais serão agrupados na categoria Outros. Essa abordagem também se aplica a outras dimensões, como consultas, bancos de dados e usuários.

Conferir os principais contribuintes para a carga do banco de dados

Com a tabela Principais dimensões por carga do banco de dados, você pode conferir os principais contribuidores para a carga do banco de dados no intervalo de tempo e na dimensão selecionados no gráfico Carga do banco de dados. Dependendo da dimensão escolhida na tabela Principais dimensões por carga do banco de dados, você pode encontrar os principais valores para o período selecionado.

  1. No console do Google Cloud, acesse a página Clusters.

    Acessar Clusters

  2. Na lista de clusters e instâncias, clique em uma instância.

  3. Clique em Query Insights.

  4. Escolha o banco de dados e o usuário.

  5. Escolha o tempo de execução total para mostrar os dados, por exemplo, 1 ou 6 horas ou um período personalizado.

  6. Na tabela Principais dimensões por carga do banco de dados, você pode clicar em qualquer uma das seguintes opções:

    Dimensão Descrição
    Consultas A tabela mostra as principais consultas normalizadas por tempo de execução total. Para cada consulta, os dados mostrados nas colunas são listados da seguinte forma:
    • Tempo de exec. médio (ms). Tempo médio para executar a consulta.
    • Tempo total de execução (ms). O tempo total de execução da consulta específica.
    • Linhas retornadas. O número médio de linhas buscadas para a consulta.
    • Horas chamadas. O número de vezes que a consulta foi chamada pelo aplicativo.
    • %de carregamento por dimensão do gráfico. O gráfico de pílulas mostra como a dimensão do gráfico é distribuída para a consulta específica.
    Tipos de evento de espera A tabela mostra a lista dos principais tipos de evento de espera que ocorreram durante o período selecionado.
    • Tempo médio gasto em espera (ms). Tempo médio que as consultas passaram no tipo de evento de espera específico.
    • Tempo total gasto em espera (ms). O tempo total de execução das consultas no tipo de evento de espera específico.
    • Contagem de tipos de evento de espera. O número de vezes que um tipo de evento de espera específico ocorreu no período escolhido.
    • %de carregamento por dimensão do gráfico. O gráfico de pílulas mostra como a dimensão do gráfico selecionada no menu suspenso do gráfico de carga do banco de dados é distribuída pelo tipo de evento de espera específico.
    Eventos de espera A tabela mostra a lista dos principais eventos de espera que ocorreram durante o período selecionado.
    • Tempo médio gasto em espera (ms). Tempo médio que as consultas passaram no evento de espera específico.
    • Tempo total gasto em espera (ms). O tempo total de execução das consultas no evento de espera específico.
    • Contagem de eventos de espera. O número de vezes que um evento de espera específico ocorreu no período escolhido.
    • %de carregamento por dimensão do gráfico. O gráfico de pílulas mostra como a dimensão do gráfico selecionada no menu suspenso do gráfico de carga do banco de dados é distribuída pelo evento de espera específico.
    Banco de dados A tabela mostra a lista dos principais bancos de dados que contribuíram para a carga durante o período escolhido em todas as consultas executadas.
    • Tempo médio gasto no banco de dados (ms). Tempo médio que as consultas passaram no banco de dados específico.
    • Tempo total gasto no banco de dados (ms). O tempo de execução total que as consultas gastaram no banco de dados específico.
    • %de carregamento por dimensão do gráfico. O gráfico de pílulas mostra como a dimensão do gráfico selecionada no menu suspenso do gráfico de carga do banco de dados é distribuída pelo banco de dados específico.
    Usuário A tabela mostra a lista dos principais usuários no período escolhido em todas as consultas executadas.
    • Tempo médio gasto no usuário (ms). Tempo médio que as consultas passaram no usuário específico.
    • Tempo total gasto no usuário (ms). O tempo total de execução das consultas no usuário específico.
    • %de carregamento por dimensão do gráfico. O gráfico de pílulas mostra como a dimensão do gráfico selecionada no menu suspenso do gráfico de carga do banco de dados é distribuída pelo usuário específico.

Conferir o tempo de execução da consulta

Os Query Insights aprimorados mostram as dez consultas mais frequentes que contribuem para a carga do banco de dados na tabela Principais dimensões por carga do banco de dados. A consulta principal é a que contribuiu mais para a carga do banco de dados no período selecionado. As consultas subsequentes são uma porcentagem do tempo de execução mais longo.

Para saber como o tempo de execução de um parâmetro na Principais dimensões por carga do banco de dados é afetado por diferentes valores da dimensão do gráfico selecionada (consultas, tipos de evento de espera, eventos de espera, bancos de dados e usuários), siga estas etapas:

  1. No console do Google Cloud, acesse a página Clusters.

    Acessar Clusters

  2. Na lista de clusters e instâncias, clique em uma instância.

  3. Clique em Query Insights.

  4. Escolha o banco de dados e o usuário.

  5. Confira a % de carga por dimensão do gráfico na tabela Principais dimensões por carga do banco de dados para saber como um parâmetro na tabela é afetado pelos parâmetros no gráfico Carga do banco de dados.

    Por exemplo, quando você seleciona All Queries no gráfico Database Load e clica na guia Queries na tabela Top dimensions by database load, % load by Queries mostra uma lista das consultas que mais contribuíram para a carga do banco de dados selecionado durante o período especificado.

Conferir detalhes sobre o tempo de execução da consulta

É possível conferir detalhes sobre o tempo de execução da consulta em Mais detalhes, incluindo as dimensões selecionadas no gráfico e na tabela de carga do banco de dados, a definição de cada evento de espera e os dados encapsulados na categoria Outros.

Mais detalhes também mostra detalhes de informações complexas que não são mostradas em outro lugar na tela de detalhes da consulta. Essas informações incluem a definição de cada evento de espera.

Para conferir detalhes sobre o tempo de execução da consulta, siga estas etapas:

  1. No console do Google Cloud, acesse a página Clusters.

    Acessar Clusters

  2. Na lista de clusters e instâncias, clique em uma instância.

  3. Clique em Query Insights.

  4. Escolha o banco de dados e o usuário.

  5. Na tabela Principais dimensões por carga do banco de dados, clique em Mais detalhes para uma consulta.

Os Query Insights aprimorados mostram consultas normalizadas ($1, $2 e assim por diante) para substituir os valores constantes literais. Exemplo:

UPDATE
  "demo_customer"
SET
  "customer_id" = $1::uuid,
  "name" = $2,
  "address" = $3,
  "rating" = $4,
  "balance" = $5,
  "current_city" = $6,
  "current_location" = $7
WHERE
  "demo_customer"."id" = $8

O valor da constante é ignorado para que os Query Insights avançados possam agregar consultas semelhantes e remover quaisquer informações de identificação pessoal (PII) que a constante possa mostrar.

Determinar a carga do banco de dados para consultas normalizadas

Para mostrar uma medida do tempo e do uso de recursos por execução de consulta (em segundos de CPU) que a consulta normalizada selecionada realizou no banco de dados selecionado ao longo do tempo, siga estas etapas:

  1. No console do Google Cloud, acesse a página Clusters.

    Acessar Clusters

  2. Na lista de clusters e instâncias, clique em uma instância.

  3. Clique em Query Insights.

  4. Escolha o banco de dados e o usuário.

  5. Clique em Consultas no gráfico Carga do banco de dados. Para calcular a carga do banco de dados, o gráfico Carga do banco de dados usa o tempo gasto pelas consultas normalizadas que são concluídas no limite de minutos para o tempo real decorrido.

Na parte de cima do gráfico Database Load, os primeiros 10 KB de caracteres da consulta normalizada são mostrados, em que os literais são removidos para fins de agregação e informações de identificação pessoal (PII).

Para ajudar a determinar a distribuição do tempo gasto em cada um desses estados, os Query Insights aprimorados distribuem por cargas de consulta normalizadas em eventos de espera e tipos de eventos de espera.

É possível estudar a latência da consulta usando os gráficos de Latência. A latência é o tempo que uma consulta normalizada leva para ser concluída em tempo real decorrido. A latência de consultas paralelas é medida no tempo real decorrido, mesmo que a carga do banco de dados seja maior para a consulta devido à utilização de vários núcleos para executar parte dela.

É possível filtrar por percentil para conferir o 50º, 95º ou 99º percentil e detectar consultas que não aderem ao tempo de execução esperado. Para analisar a latência histórica da consulta normalizada, mude a janela de tempo.

Analisar consultas normalizadas

Os planos de consulta ajudam a entender e analisar consultas normalizadas, fornecendo um detalhe das diferentes operações em uma amostra da consulta.

O plano de consulta de exemplo fornece uma visualização EXPLAIN ANALYZE para as amostras de plano de consulta relacionadas à consulta normalizada. Esses são planos de consulta executados que fornecem um detalhamento do tempo ativo de cada operação no plano de consulta.

Para conferir um exemplo de plano de consulta, siga estas etapas:

  1. No console do Google Cloud, acesse a página Clusters.

    Acessar Clusters

  2. Na lista de clusters e instâncias, clique em uma instância.

  3. Clique em Query Insights.

  4. Escolha o banco de dados e o usuário.

  5. Escolha o tempo de execução total para mostrar os dados, por exemplo, 1 ou 6 horas ou um período personalizado.

  6. Na tabela Principais dimensões por carga do banco de dados, clique em uma consulta.

  7. Em Amostras do plano de consulta, clique em qualquer um dos pontos no gráfico para conferir um plano de consulta para essa consulta.

Monitorar e resolver problemas de desempenho do aplicativo usando tags

O Query insights aprimorado fornece monitoramento centrado no aplicativo e simplifica o diagnóstico de desempenho de aplicativos criados com mapeamento relacional de objetos (ORM). A inclusão de tag de consulta ajuda a encontrar problemas em construções de alto nível, como usar a lógica de negócios, um microsserviço ou outra construção. Você pode usar tags no seu aplicativo para fazer o seguinte:

  • Monitore o desempenho do banco de dados.
  • Use o Sqlcommenter para identificar problemas de desempenho causados pelo código do aplicativo.
  • Analisar a carga do banco de dados.
  • Confira a carga por tag.

Para saber como usar tags nos Query Insights, consulte Melhorar o desempenho da consulta usando os insights de consulta.

Resolver problemas de aplicativos na camada do banco de dados

Os Query Insights aprimorados fornecem uma visualização de rastreamento completa no contexto para ajudar a entender os problemas com o aplicativo na camada do banco de dados para uma solicitação específica. Os rastros de aplicativo completos e contextualizados ajudam a determinar a origem da consulta problemática, por exemplo, por modelo, visualização, controladores e rota.

Quando você ativa o OpenTelemetry, as informações de período são enviadas ao banco de dados com as informações da tag nos comentários do SQL. Os rastros do aplicativo com o Cloud Logging são vinculados aos traces do plano de consulta do banco de dados para identificar a origem do problema.

Para conferir um rastro no contexto, siga estas etapas:

  1. No console do Google Cloud, acesse a página Clusters.

    Acessar Clusters

  2. Na lista de clusters e instâncias, clique em uma instância.

  3. Clique em Query Insights.

  4. Escolha o banco de dados e o usuário.

  5. Clique em qualquer entrada na tabela Principais dimensões por carga do banco de dados.

  6. Na página Detalhes dos insights de consulta, clique em DE ATÉ O FIM.

Também é possível usar o Cloud Trace para conferir o rastreamento completo de cada etapa do plano de consulta. Para acessar o Cloud Trace, selecione Operações > Trace.

Perguntas frequentes

Esta seção fornece respostas para perguntas frequentes sobre Query Insights aprimorados.

Por que a string de consulta é truncada?

Por padrão, Query Insights aprimorados mostram 10 KB nas strings de consulta. Você pode aumentar a exibição para 100 KB.

Por que a carga da CPU está acima da linha principal do núcleo no gráfico de carga do banco de dados?

A carga da CPU considera o tempo de execução e o tempo de espera para que o programador do Linux programe o processo do servidor em execução. Como resultado, a carga da CPU pode ir além da linha principal do núcleo.

Posso usar as métricas padrão dos Query Insights?

Sim. Os Insights de consulta padrão geram contadores que podem ser acessados pelo Stackdriver. Enquanto os Query Insights aprimorados estão em fase de visualização, essas métricas estão disponíveis usando a API Cloud Monitoring com os Query Insights aprimorados. Para mais informações, consulte MétricasGoogle Cloud .

Qual é o comprimento máximo da string de consulta?

Para o plug-in padrão de Query Insights, o comprimento máximo da string de consulta é limitado a 4,5 KB. Para os Insights avançados de consulta, o comprimento da string padrão é 10 KB, e o comprimento máximo é limitado a 100 KB.

Posso usar os Query Insights aprimorados na replicação entre regiões?

Não é possível ativar os Query Insights aprimorados em clusters com instâncias secundárias. Antes de criar uma instância secundária em um cluster, desative os insights de consulta aprimorados em todas as instâncias do cluster, se Query Insights já estiverem ativados.

A seguir