Esta página descreve como usar o painel de insights da consulta para detectar e analisar problemas de desempenho com suas consultas.
Introdução
O Query Insights ajuda a detectar, diagnosticar e prevenir problemas de desempenho de consultas em bancos de dados Cloud SQL. Ele oferece suporte a monitoramento intuitivo e fornece informações de diagnóstico que ajudam você a ir além da detecção e identificar a causa raiz dos problemas de desempenho.
Com o Query Insights, você pode monitorar o desempenho no nível do aplicativo e rastrear a origem de uma consulta problemática na pilha do aplicativo por modelo, visualização, controlador, rota, usuário e host. A ferramenta Query Insights pode ser integrada às suas ferramentas de monitoramento de aplicativos (APM) existentes e Google Cloudserviços usando padrões e APIs abertos. Dessa forma, você pode monitorar e solucionar problemas de consulta usando sua ferramenta favorita.
O Query Insights ajuda você a melhorar o desempenho das consultas do Cloud SQL, orientando você nas seguintes etapas:
- Visualizar a carga do banco de dados para as principais consultas
- Identificar uma consulta ou tag potencialmente problemática
- Examine a consulta ou tag para identificar problemas
- Rastreie a origem do problema
Insights de consulta para a edição Cloud SQL Enterprise Plus
Se você estiver usando a edição Cloud SQL Enterprise Plus, poderá acessar recursos adicionais no Query Insights para realizar diagnósticos avançados de desempenho de consultas. Além dos recursos padrão do painel Query Insights, o Query Insights para a edição Cloud SQL Enterprise Plus permite que você faça o seguinte:
- Capture e analise eventos de espera para todas as consultas executadas.
- Filtre a carga agregada do banco de dados por dimensões adicionais, como consultas, tags, tipos de eventos de espera e muito mais.
- Capture planos de consulta para todas as consultas executadas.
- Crie amostras de até 200 planos de consulta por minuto.
- Capture textos de consulta mais longos, de até 1 MB.
- Obtenha atualizações quase em tempo real para métricas (na ordem de segundos).
- Mantenha uma retenção de métricas mais longa, de 30 dias.
- Obtenha recomendações de índice do consultor de índice.
- Encerra uma sessão ou transação de longa duração em consultas ativas.
- Acesse a solução de problemas assistida por IA ( visualização ).
A tabela a seguir compara os requisitos funcionais e os recursos do Query Insights para a edição Cloud SQL Enterprise com o Query Insights para a edição Cloud SQL Enterprise Plus.
Área de comparação | Insights de consulta para a edição Enterprise do Cloud SQL | Insights de consulta para a edição Cloud SQL Enterprise Plus |
---|---|---|
Versões de banco de dados suportadas | MySQL 5.7 ou posterior | MySQL 8.0 ou posterior |
Tipos de máquinas suportados | Suportado em todos os tipos de máquinas | Não suportado em instâncias que usam um tipo de máquina de núcleo compartilhado |
Regiões suportadas | Locais regionais do Cloud SQL | Locais regionais da edição Cloud SQL Enterprise Plus |
Período de retenção de métricas | 7 dias | 30 dias |
Limite máximo de comprimento da consulta | 4500 bytes | 1 MB |
Exemplo máximo de plano de consulta | 20 | 200 |
Análise de eventos de espera | Não disponível | Disponível |
Recomendações do consultor de índice | Não disponível | Disponível |
Encerrar sessões ou transações de longa duração em consultas ativas | Não disponível | Disponível |
Solução de problemas assistida por IA ( visualização ) | Não disponível | Disponível |
Habilitar insights de consulta para a edição Cloud SQL Enterprise Plus
Para habilitar o query insights para a edição Cloud SQL Enterprise Plus, selecione Habilitar recursos do Enterprise Plus ao Habilitar o query insights na sua instância da edição Cloud SQL Enterprise Plus.
Preços
Não há custo adicional para insights de consulta em instâncias do Cloud SQL Enterprise Edition ou do Cloud SQL Enterprise Plus Edition.
Requisitos de armazenamento
O Query Insights para a edição Enterprise do Cloud SQL não ocupa espaço de armazenamento na sua instância do Cloud SQL. As métricas são armazenadas no Cloud Monitoring. Para solicitações de API, consulte Preços do Cloud Monitoring. O Cloud Monitoring tem uma camada que você pode usar sem custo adicional.
O Query Insights para a edição Cloud SQL Enterprise Plus armazena dados de métricas no mesmo disco conectado à sua instância do Cloud SQL e exige que você mantenha a configuração de aumento automático de armazenamento ativada.
O requisito de armazenamento para sete dias de dados é de aproximadamente 45 GB. Para 30 dias, você precisará de aproximadamente 180 GB. O Query Insights para a edição Enterprise Plus do Cloud SQL usa até 130 MB de RAM. As métricas devem estar disponíveis no Query Insights em até um minuto após a conclusão da consulta. Taxas de armazenamento aplicáveis serão aplicadas .Antes de começar
Antes de usar o query insights, faça o seguinte.
- Adicione funções e permissões necessárias .
- Habilite a API do Cloud Trace .
- Se você estiver usando o Query Insights para a edição Cloud SQL Enterprise Plus, certifique-se de que Habilitar aumentos automáticos de armazenamento esteja habilitado para a instância .
Funções e permissões necessárias
Para usar o query insights, você precisa conceder uma função predefinida, criar uma função personalizada ou fornecer a uma conta de usuário as permissões necessárias de Gerenciamento de Identidade e Acesso.
Para obter mais informações sobre como conceder funções, consulte Gerenciar acesso .
Para obter as permissões necessárias para acessar dados históricos de execução de consultas no painel Insights da consulta, peça ao administrador para conceder a você as seguintes funções do IAM no projeto que hospeda a instância do Cloud SQL:
- Visualizador de monitoramento do Database Insights (
roles/databaseinsights.monitoringViewer
) - Visualizador do Cloud SQL (
roles/cloudsql.viewer
)
Para obter mais informações sobre como conceder funções, consulte Gerenciar acesso a projetos, pastas e organizações .
Essas funções predefinidas contêm as permissões necessárias para acessar dados históricos de execução de consultas no painel de insights da consulta. 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 acessar dados históricos de execução de consultas no painel Insights da consulta:
-
databaseinsights.aggregatedStats.query
-
databaseinsights.timeSeries.query
Você também pode obter essas permissões com funções personalizadas ou outras funções predefinidas .
Por exemplo, no Database Insights, você pode pedir ao administrador que lhe conceda a função predefinida de Visualizador do Database Insights (roles/databaseinsights.viewer
). Em seguida, no Cloud SQL, você pode pedir ao administrador que lhe conceda uma das seguintes funções predefinidas:- Editor de SQL em nuvem (
roles/cloudsql.editor
) - Administrador do Cloud SQL (
roles/cloudsql.admin
)
Habilitar a API de rastreamento
Para visualizar planos de consulta e suas visualizações de ponta a ponta, seu Google Cloud o projeto deve ter a API Trace habilitada. Esta configuração permite que seuGoogle Cloud O projeto recebe dados de rastreamento de fontes autenticadas sem custo adicional. Esses dados podem ajudar você a detectar e diagnosticar problemas de desempenho na sua instância.
Para confirmar se a API Trace está habilitada, siga estas etapas:
- Do Google Cloud console, vá para APIs e Serviços :
- Clique em Habilitar APIs e serviços .
- Na barra de pesquisa, digite
Trace API
. - Se a opção API habilitada for exibida, significa que a API está habilitada e não há mais nada a ser feito. Caso contrário, clique em Habilitar .
Habilitar aumentos automáticos de armazenamento
Se você estiver usando o Query Insights para a edição Enterprise Plus do Cloud SQL, certifique-se de que a configuração da instância para habilitar o aumento automático de armazenamento permaneça habilitada. Por padrão, essa opção está habilitada para instâncias do Cloud SQL.
Se você desativou esta configuração de instância anteriormente e deseja habilitar os insights de consulta para a edição Cloud SQL Enterprise Plus, reative primeiro os aumentos automáticos de armazenamento. Não é possível desativar os aumentos automáticos de armazenamento e habilitar os insights de consulta para a edição Cloud SQL Enterprise Plus.
Habilitar insights de consulta
Ao habilitar os insights de consulta, todas as outras operações são suspensas temporariamente. Essas operações incluem verificações de integridade, registro em log, monitoramento e outras operações de instância.
Console
Habilitar insights de consulta para uma instância
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 .
- Marque a caixa de seleção Habilitar insights de consulta .
- Opcional: selecione recursos adicionais para sua instância. Alguns recursos estão disponíveis apenas para a edição Cloud SQL Enterprise Plus.
- Clique em Salvar .
Recurso | Descrição | Edição Enterprise do Cloud SQL | Edição Cloud SQL Enterprise Plus |
---|---|---|---|
Habilitar recursos do Enterprise Plus | Marque esta caixa de seleção para habilitar o Query Insights para a edição Cloud SQL Enterprise Plus. O Query Insights para a edição Cloud SQL Enterprise Plus permite encerrar sessões e transações de longa duração em consultas ativas, habilita recomendações do Index Advisor para ajudar a acelerar o processamento de consultas e aumenta a retenção de dados métricos para 30 dias. As recomendações do Index Advisor são habilitadas automaticamente quando você habilita o Query Insights para a edição Cloud SQL Enterprise Plus. Para desabilitar as recomendações do Index Advisor, desmarque esta caixa de seleção. Você deve marcar esta caixa de seleção para habilitar as recomendações do Index Advisor e a solução de problemas assistida por IA ( Visualização ). | Não disponível | Disponível Padrão : Desativado |
Solução de problemas assistida por IA | Marque esta caixa de seleção para habilitar a detecção de anomalias de desempenho, a análise de causa raiz e situação, e para obter recomendações para corrigir problemas com suas consultas e banco de dados. Este recurso está em versão prévia e você pode habilitá-lo e acessá-lo somente usando o Google Cloud console. Para mais informações, consulte Observar e solucionar problemas com assistência de IA . | Não disponível | Disponível Padrão : Desativado |
Armazene endereços IP de clientes | Marque esta caixa de seleção para habilitar o armazenamento de endereços IP de clientes. O Cloud SQL pode armazenar os endereços IP de origem das consultas e permitir que você agrupe esses dados para executar métricas. As consultas vêm de mais de um host. Analisar gráficos para consultas de endereços IP de clientes pode ajudar a identificar a origem de um problema. | Disponível Padrão : Desativado | Disponível Padrão : Desativado |
Etiquetas de aplicação da loja | Marque esta caixa de seleção para habilitar o armazenamento de tags de aplicativo. O armazenamento de tags de aplicativo ajuda a determinar as APIs e as rotas MVC (Model-View-Controller) que estão fazendo solicitações e a agrupar os dados para executar métricas. Esta opção exige que você comente consultas com um conjunto específico de tags usando a biblioteca de autoinstrumentação de mapeamento objeto-relacional (ORM) de código aberto sqlcommenter . Essas informações ajudam os insights de consulta a identificar a origem de um problema e o MVC de onde o problema está vindo. Os caminhos de aplicativo ajudam no monitoramento de aplicativos. | Disponível Padrão: Desativado | Disponível Padrão: Desativado |
Personalizar comprimentos de consulta | Marque esta caixa de seleção para personalizar o limite de comprimento de uma sequência de consulta. Consultas com comprimentos maiores são mais úteis para consultas analíticas, mas também exigem mais memória. Qualquer sequência de consulta que ultrapasse o limite especificado será truncada na exibição. Alterar o limite de comprimento da consulta exige que você reinicie a instância. Você ainda pode adicionar tags a consultas que excedam o limite de comprimento. | Você pode definir o limite em bytes de 256 bytes a 4500 bytes.Padrão : 1024 . | Você pode especificar um limite em bytes de 1 a 1048576 .Padrão : 1024 bytes (1 KB). |
Defina a taxa de amostragem máxima | Marque esta caixa de seleção para definir a taxa máxima de amostragem. A taxa de amostragem é o número de amostras de planos de consulta executados que são capturadas por minuto em todos os bancos de dados da instância. Aumentar a taxa de amostragem provavelmente fornecerá mais pontos de dados, mas pode aumentar a sobrecarga de desempenho. Para desabilitar a amostragem, defina o valor como 0 . | Você altera esse valor para um número de 0 a 20 .Padrão : 5 . | Você pode aumentar o máximo para 200 para fornecer mais pontos de dados.Padrão : 5 . |
Habilitar insights de consulta para várias instâncias
No Google Cloud console, acesse a página Instâncias do Cloud SQL .
- Clique no menu Mais ações em qualquer linha.
- Selecione Habilitar insights de consulta .
- Na caixa de diálogo, marque a caixa de seleção Habilitar insights de consulta para várias instâncias .
- Clique em Habilitar .
- Na caixa de diálogo subsequente, selecione as instâncias para as quais você deseja habilitar os insights de consulta.
- Clique em Habilitar insights de consulta .
gcloud
Para habilitar insights de consulta para uma instância do Cloud SQL usando gcloud
, execute gcloud sql instances patch
com o sinalizador --insights-config-query-insights-enabled
da seguinte forma após substituir INSTANCE_ID pelo ID da instância.
Se você habilitar insights de consulta para uma instância da edição Enterprise Plus do Cloud SQL, habilitará as recomendações do index advisor automaticamente.
gcloud sql instances patch INSTANCE_ID \ --insights-config-query-insights-enabled
Além disso, use um ou mais dos seguintes sinalizadores opcionais:
--insights-config-record-client-address
Armazena os endereços IP do cliente de onde as consultas estão vindo e ajuda você a agrupar esses dados para executar métricas neles. As consultas vêm de mais de um host. Analisar gráficos para consultas de endereços IP do cliente pode ajudar a identificar a origem de um problema.
--insights-config-record-application-tags
Armazena tags de aplicativo que ajudam a determinar as APIs e as rotas de modelo-visão-controlador (MVC) que estão fazendo solicitações e agrupando os dados para executar métricas. Esta opção exige que você comente consultas com um conjunto específico de tags. Você pode fazer isso usando a biblioteca de autoinstrumentação de mapeamento objeto-relacional (ORM) de código aberto sqlcommenter . Essas informações ajudam o Query Insights a identificar a origem de um problema e o MVC de onde o problema está vindo. Os caminhos de aplicativo ajudam no monitoramento de aplicativos.
--insights-config-query-string-length
Define o limite de comprimento padrão da consulta. Consultas com comprimentos maiores são mais úteis para consultas analíticas, mas também exigem mais memória. Alterar o comprimento da consulta exige a reinicialização da instância. Você ainda pode adicionar tags a consultas que excedem o limite de comprimento. Para a edição Cloud SQL Enterprise, você pode especificar um valor em bytes de
256
a4500
O comprimento padrão da consulta é1024
bytes. Para a edição Cloud SQL Enterprise Plus, você pode especificar um limite em bytes de1
a1048576
O valor padrão é1024
bytes (1 KB).--query_plans_per_minute
Por padrão, são capturadas no máximo 5 amostras de planos de consulta executados por minuto em todos os bancos de dados da instância. Aumentar a taxa de amostragem provavelmente resultará em mais pontos de dados, mas pode aumentar o desempenho. Para desabilitar a amostragem, defina este valor como
0
Para a edição Cloud SQL Enterprise, você pode alterar o valor de 0 a 20. Para a edição Cloud SQL Enterprise Plus, você pode aumentar o valor máximo para até 200 para fornecer mais pontos de dados.
Substitua o seguinte:
- INSIGHTS_CONFIG_QUERY_STRING_LENGTH : O comprimento da string de consulta a ser armazenada, em bytes.
- API_TIER_STRING : A configuração de instância personalizada a ser usada para a instância.
- REGION : A região da instância.
gcloud sql instances patch INSTANCE_ID \ --insights-config-query-insights-enabled \ --insights-config-query-string-length=INSIGHTS_CONFIG_QUERY_STRING_LENGTH \ --query_plans_per_minute=QUERY_PLANS_PER_MINUTE \ --insights-config-record-application-tags \ --insights-config-record-client-address \ --tier=API_TIER_STRING \ --region=REGION
REST v1
Para habilitar insights de consulta para uma instância do Cloud SQL usando a API REST, chame o método instances.patch
com as configurações insightsConfig
.
Se você habilitar insights de consulta para uma instância da edição Enterprise Plus do Cloud SQL, habilitará as recomendações do index advisor automaticamente.
Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:
- PROJECT_ID : o ID do projeto
- INSTANCE_ID : o ID da instância
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON da solicitação:
{ "settings" : { "insightsConfig" : { "queryInsightsEnabled" : true, "recordClientAddress" : true, "recordApplicationTags" : true, "queryStringLength" : 1024, "queryPlansPerMinute" : 20, } } }
Para enviar sua solicitação, expanda uma destas opções:
Você deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "[email protected]", "insertTime": "2025-03-28T22:43:40.009Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Terraform
Para usar o Terraform para habilitar insights de consulta para uma instância do Cloud SQL, defina o sinalizador query_insights_enabled
como true
.
Se você habilitar insights de consulta para uma instância da edição Enterprise Plus do Cloud SQL, habilitará as recomendações do index advisor automaticamente.
Além disso, você pode usar um ou mais dos seguintes sinalizadores opcionais:
-
query_string_length
: para a edição Cloud SQL Enterprise, você pode especificar um valor em bytes de256
a4500
O comprimento padrão da consulta é1024
bytes. Para a edição Cloud SQL Enterprise Plus, você pode especificar um limite em bytes de1
a1048576
O valor padrão é1024
bytes (1 KB). -
record_application_tags
: defina o valor comotrue
se quiser registrar tags de aplicativo da consulta. -
record_client_address
: defina o valor comotrue
se desejar registrar o endereço IP do cliente. O padrão éfalse
. -
query_plans_per_minute
: para a edição Cloud SQL Enterprise, você pode definir o valor de0
a20
O padrão é5
Para a edição Cloud SQL Enterprise Plus, você pode aumentar o máximo para até200
para fornecer mais pontos de dados.
Aqui está um exemplo:
resource "google_sql_database_instance" "INSTANCE_NAME" { name = "INSTANCE_NAME" database_version = "MYSQL_VERSION" region = "REGION" root_password = "PASSWORD" deletion_protection = false # set to true to prevent destruction of the resource settings { tier = "DB_TIER" insights_config { query_insights_enabled = true query_string_length = 2048 # Optional record_application_tags = true # Optional record_client_address = true # Optional query_plans_per_minute = 10 # Optional } } }
Para aplicar sua configuração do Terraform em um Google Cloud projeto, conclua as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell .
Defina o padrão Google Cloud projeto onde você deseja aplicar suas configurações do Terraform.
Você só precisa executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.
Preparar o diretório
Cada arquivo de configuração do Terraform deve ter seu próprio diretório (também chamado de módulo raiz ).
- No Cloud Shell , crie um diretório e um novo arquivo dentro dele. O nome do arquivo deve ter a extensão
.tf
— por exemplo,main.tf
Neste tutorial, o arquivo será chamado demain.tf
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Se estiver seguindo um tutorial, você pode copiar o código de exemplo em cada seção ou etapa.
Copie o código de exemplo no
main.tf
recém-criado.Opcionalmente, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução completa.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve suas alterações.
- Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplicar as alterações
- Revise a configuração e verifique se os recursos que o Terraform irá criar ou atualizar correspondem às suas expectativas:
terraform plan
Faça correções na configuração conforme necessário.
- Aplique a configuração do Terraform executando o seguinte comando e digitando
yes
no prompt:terraform apply
Aguarde até que o Terraform exiba a mensagem "Aplicação concluída!".
- Abra seu Google Cloud projeto para visualizar os resultados. No Google Cloud console, navegue até seus recursos na interface do usuário para garantir que o Terraform os criou ou atualizou.
Espera-se que as métricas estejam disponíveis nos insights da consulta minutos após a conclusão da consulta. Revise a política de retenção de dados do Cloud Monitoring .
Os rastreamentos de insights de consulta são armazenados no Cloud Trace. Consulte a política de retenção de dados do Cloud Trace .
Exibir o painel de insights da consulta
O painel de insights da consulta mostra a carga da consulta com base nos fatores selecionados. A carga da consulta é uma mensuração do trabalho total de todas as consultas na instância no intervalo de tempo selecionado. O painel fornece uma série de filtros que ajudam a visualizar a carga da consulta.
Para abrir o painel de insights da consulta , siga estas etapas:
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- No menu de navegação do Cloud SQL, clique em Insights da consulta ou clique em Ir para Insights da consulta para obter informações mais detalhadas sobre consultas e desempenho na página Visão geral da instância .
O painel de insights da consulta é aberto. Dependendo se você estiver usando o Query Insights para a edição Enterprise do Cloud SQL ou o Query Insights para a edição Enterprise Plus do Cloud SQL, o painel de insights da consulta mostra as seguintes informações sobre sua instância:
Edição Cloud SQL Enterprise Plus

- Todas as consultas : mostra a carga do banco de dados para todas as consultas no intervalo de tempo selecionado. Cada consulta é codificada por cores individualmente. Para visualizar um ponto no tempo para uma consulta específica, mantenha o ponteiro do mouse sobre o gráfico da consulta.
- Banco de dados : filtra a carga de consulta em um banco de dados específico ou em todos os bancos de dados.
- Usuário : filtra a carga de consulta de uma conta de usuário específica.
- Endereço do cliente : filtra a carga de consulta de um endereço IP específico.
- Intervalo de tempo : filtra a carga da consulta por intervalos de tempo, como 1 hora, 6 horas, 1 dia, 7 dias, 30 dias ou um intervalo personalizado.
- Tipos de eventos de espera : filtra a carga da consulta por CPU e tipos de eventos de espera de bloqueio.
- Consultas , Tipos de eventos de espera , Bancos de dados , Usuários , Tags e Endereços de clientes : Classifique pelas principais dimensões que mais contribuem para a carga do banco de dados no gráfico. Consulte Filtrar a carga do banco de dados .
Edição Enterprise do Cloud SQL

- Banco de dados : filtra a carga de consulta em um banco de dados específico ou em todos os bancos de dados.
- Usuário : filtra a carga de consulta de uma conta de usuário específica.
- Endereço do cliente : filtra a carga de consulta de um endereço IP específico.
- Intervalo de tempo : filtra a carga da consulta por intervalos de tempo, como 1 hora, 6 horas, 1 dia, 7 dias, 30 dias ou um intervalo personalizado.
- Gráfico de carga do banco de dados : exibe o gráfico de carga da consulta, com base em dados filtrados.
- Capacidade da CPU, CPU e espera da CPU, espera de E/S e espera de bloqueio : filtra as cargas com base nas opções selecionadas. Consulte Exibir a carga do banco de dados para as principais consultas para obter detalhes sobre cada um desses filtros.
- Consultas e Marcadores : Filtra a carga da consulta por uma consulta selecionada ou por um marcador de consulta SQL selecionado. Consulte Filtrar a carga do banco de dados .
Visualizar a carga do banco de dados para todas as consultas
A carga de consultas ao banco de dados é 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 de CPU, recursos de E/S ou recursos de bloqueio. A carga de consultas ao banco de dados é a razão entre o tempo gasto por todas as consultas concluídas em um determinado intervalo de tempo e o tempo de processamento.
O painel de insights de consulta de nível superior mostra o gráfico de carga do banco de dados — todas as consultas principais . Os menus suspensos no painel permitem filtrar o gráfico por um banco de dados, usuário ou endereço de cliente específico.
Edição Cloud SQL Enterprise Plus

Edição Enterprise do Cloud SQL

As linhas coloridas no gráfico mostram a carga da consulta, dividida em categorias:
- Capacidade da CPU : o número de CPUs disponíveis na instância.
- CPU e Espera de CPU : A proporção entre o tempo gasto por consultas em estado ativo e o tempo de processamento. Esperas de E/S e Bloqueio não bloqueiam consultas em estado ativo. Essa métrica pode significar que a consulta está usando a CPU ou aguardando que o agendador do Linux agende o processo do servidor que a executa enquanto outros processos estão usando a CPU.
- Espera de E/S : a proporção entre o tempo gasto por consultas que aguardam E/S e o tempo de processamento. A espera de E/S inclui a Espera de E/S de Leitura e a Espera de E/S de Gravação. Se você quiser um detalhamento das informações sobre esperas de E/S, consulte o Cloud Monitoring. Consulte as métricas do Cloud SQL para obter mais informações.
- Espera de Bloqueio : a proporção entre o tempo gasto por consultas que aguardam bloqueios e o tempo de processamento. Inclui esperas de bloqueio, esperas de bloqueio lento e esperas de bloqueio de pinos de buffer. Para ver um detalhamento das informações sobre esperas de bloqueio, use o Cloud Monitoring. Consulte as métricas do Cloud SQL para obter mais informações.
As linhas coloridas no gráfico mostram a carga por banco de dados por tempo de execução. Revise o gráfico e use as opções de filtragem para explorar estas perguntas:
- A carga da consulta está alta? O gráfico está apresentando picos ou se elevou ao longo do tempo? Se você não observar uma carga alta, o problema não está na sua consulta.
- Há quanto tempo a carga está alta? Ela está alta apenas agora ou já está alta há muito tempo? Use o seletor de intervalo para selecionar vários períodos e descobrir a duração do problema. Aumente o zoom para visualizar uma janela de tempo em que picos de carga de consultas são observados. Diminua o zoom para visualizar até uma semana da linha do tempo.
- O que está causando a alta carga? Você pode selecionar opções para examinar a capacidade da CPU, a CPU e a espera da CPU, a espera de bloqueio ou a espera de E/S. O gráfico para cada uma dessas opções tem uma cor diferente para que você possa identificar aquela com a maior carga. A linha azul-escura no gráfico mostra a capacidade máxima da CPU do sistema. Ela permite comparar a carga da consulta com a capacidade máxima da CPU do sistema. Essa comparação ajuda a determinar se uma instância está ficando sem recursos de CPU.
- Qual banco de dados está com a carga mais alta? Selecione diferentes bancos de dados no menu suspenso "Bancos de Dados" para encontrar os bancos de dados com as cargas mais altas.
- Usuários ou endereços IP específicos causam cargas mais altas? Selecione diferentes usuários e endereços nos menus suspensos para identificar aqueles que estão causando cargas mais altas.
Filtrar a carga do banco de dados
Você pode filtrar a carga do banco de dados por consultas ou tags. Se estiver usando o Query Insights para a edição Enterprise Plus do Cloud SQL, você poderá personalizar o gráfico de carga do banco de dados para detalhar os dados exibidos usando qualquer uma das seguintes dimensões:Todas as consultas
Tipos de eventos de espera
Bancos de dados
Usuários
Etiquetas
Endereços de clientes
Para personalizar o gráfico de carga do banco de dados, selecione uma dimensão no menu suspenso Carga do banco de dados por tempo de execução .
Veja os principais contribuidores para a carga do banco de dados
Para visualizar os principais contribuidores para a carga do banco de dados, você pode usar a tabela "Principais dimensões por carga do banco de dados" . A tabela "Principais dimensões por carga do banco de dados" exibe os principais contribuidores para o período e a dimensão selecionados no menu suspenso do gráfico "Carga do banco de dados por tempo de execução" . Você pode modificar o período ou a dimensão para visualizar os principais contribuidores para uma dimensão ou período diferente.
Na tabela Principais dimensões por carga de dados , você pode selecionar as seguintes guias.
Aba | Descrição |
---|---|
Consultas | A tabela exibe as principais consultas normalizadas por tempo total de execução. Para cada consulta, os dados mostrados em colunas são listados da seguinte forma:
|
Tipos de eventos de espera | A tabela exibe a lista dos principais tipos de eventos de espera que ocorreram durante o período selecionado. Esta tabela está disponível apenas para insights de consulta da edição Cloud SQL Enterprise Plus.
|
Bancos 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.
|
Usuários | A tabela mostra a lista dos principais usuários para o período selecionado em todas as consultas executadas.
|
Etiquetas | Para obter informações sobre tags, filtre por tags de consulta . |
Endereços de clientes | A tabela mostra a lista dos principais usuários para o período selecionado em todas as consultas executadas.
|
Filtrar por consultas
A tabela "Principais consultas" fornece uma visão geral das consultas que causam a maior carga de consulta. A tabela mostra todas as consultas normalizadas para o intervalo de tempo e as opções selecionadas no painel "Insights da consulta". Ela classifica as consultas pelo tempo total de execução durante o intervalo de tempo selecionado.
Edição Cloud SQL Enterprise Plus
Para classificar a tabela, selecione um título de coluna.

Edição Enterprise do Cloud SQL
Para classificar a tabela, selecione um título de coluna ou uma propriedade em Filtrar consultas .

A tabela mostra as seguintes propriedades:
- Consulta : a string de consulta normalizada. Por padrão, o Query Insights exibe apenas 1.024 caracteres na string de consulta. Consultas rotuladas como
UTILITY COMMAND
geralmente incluem comandosBEGIN
,COMMIT
eEXPLAIN
ou comandos wrapper. - Banco de dados : o banco de dados no qual a consulta foi executada.
- Recomendações : as recomendações sugeridas, como Criar índices , para melhorar o desempenho da consulta.
- Carregar por tempo total/Carregar por CPU/Carregar por espera de E/S/Carregar por espera de bloqueio : as opções pelas quais você pode filtrar consultas específicas para encontrar a maior carga.
- % de carga por consultas : a porcentagem de carga por consulta individual.
- Analisar latência : se você habilitou a solução de problemas assistida por IA ( Visualização ) para esta instância, poderá clicar neste link para solucionar problemas de consultas lentas.
- Tempo médio de execução (ms) : tempo médio de execução da consulta.
- Vezes chamadas : o número de vezes que o aplicativo chamou a consulta.
- Média de linhas retornadas : número médio de linhas retornadas para a consulta.
- Média de linhas verificadas : número médio de linhas verificadas para a consulta.
O Query Insights armazena e exibe apenas consultas normalizadas.
Por padrão, o Query Insights não coleta endereços IP ou informações de tags. Você pode habilitar o Query Insights para coletar essas informações e, quando necessário, desabilitar a coleta.
Os rastreamentos do plano de consulta não coletam nem armazenam quaisquer valores constantes e removem quaisquer informações PII que a constante possa mostrar.
O Query Insights exibe consultas normalizadas, ou seja, ?
substitui o valor literal da constante. No exemplo a seguir, o nome da constante é removido e ?
o substitui.
UPDATE "demo_customer" SET "customer_id" = ?::uuid, "name" = ?, "address" = ?, "rating" = ?, "balance" = ?, "current_city" = ?, "current_location" = ? WHERE "demo_customer"."id" = ?
Filtrar por tags de consulta
Para solucionar problemas de um aplicativo, primeiro você precisa adicionar tags às suas consultas SQL . As tags de carga de consulta fornecem um detalhamento da carga de consulta da tag selecionada ao longo do tempo.
O Query Insights fornece monitoramento centrado em aplicativos para diagnosticar problemas de desempenho em aplicativos criados com ORMs. Se você é responsável por toda a pilha de aplicativos, o Query Insights oferece monitoramento de consultas a partir de uma visão do aplicativo. A marcação de consultas ajuda a encontrar problemas em construções de nível superior, como na lógica de negócios ou em um microsserviço.
Você pode marcar consultas pela lógica de negócios, por exemplo, as tags de pagamento, estoque, análise de negócios ou frete. Você pode então encontrar a carga de consulta criada pelas diversas lógicas de negócios. Por exemplo, você pode observar eventos inesperados, como picos para uma tag de análise de negócios às 13h ou crescimento inesperado para um serviço de pagamento em alta na semana anterior.
Para calcular a carga do banco de dados para a tag , o Query Insights usa o tempo gasto por cada consulta que utiliza a tag selecionada. A ferramenta calcula o tempo de conclusão no limite de minutos usando o tempo de relógio.
No painel de insights da consulta, para visualizar a tabela de tags, selecione Tags . A tabela classifica as tags pela carga total por tempo total.

Você pode classificar a tabela selecionando uma propriedade em Filtrar tags ou clicando no título de uma coluna. A tabela mostra as seguintes propriedades:
- Ação, Controlador, Framework, Rota, Aplicação, Driver de BD : Cada propriedade adicionada às suas consultas aparece como uma coluna. Pelo menos uma dessas propriedades deve ser adicionada se você quiser filtrar por tags.
- Carregar por tempo total/carregamento por CPU/Carregar por io Wait/Carregar por Lock Wait : Opções para filtrar consultas específicas para encontrar a maior carga para cada opção.
- Tempo de execução do AVG (MS) : o tempo médio para a consulta ser executada.
- Linhas AVG retornadas : O número médio de linhas retornou para a consulta.
- Linhas AVG digitalizadas : o número médio de linhas digitalizadas para a consulta.
- Vezes chamado : o número de vezes que o aplicativo chamou de consulta.
- Banco de dados : o banco de dados contra o qual a consulta foi executada.
Veja os detalhes da consulta para uma consulta ou tag específico
Para determinar se uma consulta ou tag específico é a causa raiz do problema, faça o seguinte na guia Consultas ou guia Tags , respectivamente:
- Para classificar a lista em ordem decrescente, clique no carregamento por cabeçalho total .
- Clique na consulta ou na tag na parte superior da lista. Tem a carga mais alta e está levando mais tempo que os outros.
A página de detalhes da consulta é aberta e mostra os detalhes da consulta ou tag selecionada.
Examine uma carga de consulta específica
A página Detalhes da consulta para uma consulta selecionada aparece o seguinte:

A carga do banco de dados - gráfico de consulta específico mostra uma medida do trabalho (em segundos da CPU) que sua consulta normalizada realizou em sua consulta selecionada ao longo do tempo. Para calcular a carga, ele usa a quantidade de tempo gasto pelas consultas normalizadas que são concluídas no limite de minuto até o horário do relógio de parede. No topo da tabela, os primeiros 1024 caracteres da consulta normalizada, com os literais removidos por agregação e PII, são exibidos.

Como no gráfico total de consultas, você pode filtrar a carga para uma consulta específica por banco de dados , usuário e endereço do cliente . A carga de consulta é dividida na capacidade da CPU , CPU e CPU esperam , espere e bloqueie a espera .
Examine uma carga de consulta marcada específica
O painel para uma tag selecionado aparece como segue. Por exemplo, se todas as consultas de um pagamento de microsserviços forem marcadas como payment
, você poderá ver o valor da carga de consulta que está tendendo visualizando o payment
da tag.

O gráfico de tags específico do banco de dados mostra uma medida do trabalho (em segundos da CPU) que consultas que correspondem às tags selecionadas foram executadas no banco de dados selecionado ao longo do tempo. Como no gráfico total de consultas, você pode filtrar a carga para uma tag específica por banco de dados , usuário e endereço do cliente .
Examine as operações em um plano de consulta amostrado
Um plano de consulta pega uma amostra da sua consulta e a divide em operações individuais. Ele explica e analisa cada operação na consulta.
O MySQL 5.7 fornece um plano de consulta estimado com a exibição de explicação, enquanto o MySQL 8.0 e as versões posteriores fornecem um plano de consulta executado com a visualização de análise de explicação. Um plano estimado de consulta fornece o tempo estimado de execução de uma consulta, enquanto um plano de consulta executado fornece informações em tempo real de cada etapa de execução de uma determinada consulta.
Os planos de consulta no MySQL 5.7 são suportados para as seguintes consultas que são suportadas pela declaração de explicação:
- Para tabelas únicas: insira, selecione, atualize e exclua.
- Para várias tabelas: selecione, atualize e exclua.
Você pode gerar planos de consulta no MySQL 8.0 e posteriormente para todas as consultas suportadas pelo Exply Analyze . Esta ferramenta mostra onde o MySQL gasta tempo em suas consultas selecionadas para tabelas únicas e várias tabelas. O Cloud SQL não suporta a geração de planos de consulta de manipulação de dados de várias mesas (DML), porque essas consultas não são suportadas pela explicação da análise.
O plano de consulta de amostra fornece uma visão de análise de explicação para as amostras de plano de consulta relacionadas à consulta normalizada. Estes são executados planos de consulta que fornecem um detalhamento do tempo ativo gasto por cada operação no plano de consulta.
O gráfico de amostras do plano de consulta mostra todos os planos de consulta em execução em momentos específicos e a quantidade de tempo que cada plano levou para ser executado. Você pode alterar a taxa na qual as amostras de plano de consulta são capturadas por minuto. Veja Ativar Insights de consulta .

Por padrão, o painel à direita mostra os detalhes do plano de consulta de amostra que leva mais tempo, conforme visível no gráfico de amostras do plano de consulta . Para ver os detalhes de outro plano de consulta de amostra, clique no círculo relevante no gráfico. Os detalhes expandidos mostram um modelo de todas as operações no plano de consulta.
Cada operação mostra a latência, as linhas retornadas e o custo da operação. Quando você seleciona uma operação, você pode ver mais detalhes, como blocos de sucesso compartilhados, o tipo de esquema, loops e linhas de plano.

Tente restringir o problema analisando as seguintes perguntas:
- Qual é o consumo de recursos?
- Como isso se relaciona com outras consultas?
- O consumo muda com o tempo?
Examine a latência
A latência é o tempo gasto para a consulta normalizada ser concluída, no tempo de parede. Você usa o gráfico de latência para examinar a latência na consulta ou na tag. O painel de latência mostra as latências do percentil 50, 95 e 99 para encontrar comportamentos externos.
A imagem a seguir mostra o gráfico de carga do banco de dados no percentil 50 para uma consulta específica com filtros selecionados para capacidade da CPU, CPU e CPU Wait, IO Wait e Lock Wait.

A latência das consultas paralelas é medida no tempo de parede, mesmo que a carga de consulta possa ser maior para a consulta devido a vários núcleos usados para executar parte da consulta.
Tente restringir o problema analisando as seguintes perguntas:
- O que está causando a alta carga? Selecione as opções para observar a capacidade da CPU, a CPU e a CPU Wait, E/S Wait ou Lock Wait.
- Há quanto tempo a carga está alta? Está apenas alto agora? Ou está alto há muito tempo? Altere o intervalo de tempo para encontrar a data e a hora em que a carga começou a ter um desempenho ruim.
- Houve picos de latência? Altere a janela de tempo para estudar a latência histórica para a consulta normalizada.
Rastrear a fonte do problema
Quando você encontrar as áreas e horários em que a carga foi a mais alta, identifique a fonte do problema usando o rastreamento para perfurar ainda mais.
Para ajudá-lo a identificar a fonte específica do problema, como modelo, visualização, controlador, rota, host ou usuário, o consulta Insights fornece uma visualização de rastreamento de aplicativo de ponta a ponta no contexto. Essa visualização ajuda a entender o que está acontecendo na camada de banco de dados para obter uma solicitação específica e a encontrar a fonte de uma consulta problemática por modelo, visualização, controladores e rota.
Se você ativar o OpenCensus ou o OpenElemetria , as informações do Span OpenCensus serão enviadas ao banco de dados junto com as informações da tag dentro dos comentários do SQL. Quaisquer traços do aplicativo para o registro da nuvem estão vinculados aos traços do plano de consulta de banco de dados para ajudar a identificar a fonte do problema.
Clique na guia End a End na tela de consulta de amostra para observar o rastreamento no contexto.

Para determinar o cliente e o usuário que causam o problema, use os principais endereços do cliente e as principais tabelas de usuários para encontrar as cargas mais altas. Você pode adicionar um endereço de usuário ou IP ao filtro para analisar melhor um endereço de usuário ou cliente específico. Os detalhes nas tabelas incluem a porcentagem da carga de consulta, o tempo médio de execução em milissegundos e os tempos chamados.

Você pode usar o Cloud Trace para ver o rastreamento de ponta a ponta para cada etapa do plano de consulta. No painel do consulta Insights, clique no link Exibir no rastreamento para abrir a ferramenta de rastreamento da nuvem. O gráfico de rastreamento mostra todos os traços que foram executados pelo período selecionado.

Para detalhes, consulte Encontrar e visualizar traços .
Adicione tags às consultas SQL
As consultas SQL de marcação simplifica a solução de problemas de aplicativos. Você pode usar o SQLComMenter para adicionar tags às suas consultas SQL automaticamente ou manualmente.
Use SQLComMenter com ORM
Quando você usa o ORM em vez de escrever diretamente as consultas SQL, você pode não encontrar o código do aplicativo que está causando desafios de desempenho. Você também pode ter problemas para analisar como o código do seu aplicativo afeta o desempenho da consulta. Para resolver esse problema, o Consery Insights fornece uma biblioteca de código aberto chamado SQLComMenter. Esta biblioteca é útil para desenvolvedores e administradores que usam ferramentas ORM para detectar qual código de aplicativo está causando problemas de desempenho.
Se você estiver usando o ORM e o SQLComMenter juntos, as tags serão criadas automaticamente. Você não precisa adicionar ou alterar o código em seu aplicativo.
Você pode instalar o SQLComMenter no servidor de aplicativos. A biblioteca de instrumentação permite que as informações do aplicativo relacionadas à sua estrutura MVC sejam propagadas ao banco de dados, juntamente com as consultas como um comentário SQL. O banco de dados pega essas tags e começa a gravar e agregar estatísticas por tags, que são ortogonais às estatísticas agregadas por consultas normalizadas. As Insights de consulta mostram as tags para que você saiba qual aplicativo está causando a carga da consulta e pode encontrar o código do aplicativo que está causando problemas de desempenho.
Quando você examina os resultados em logs do banco de dados SQL, eles aparecem o seguinte:
SELECT * from USERS /action='run+this', controller='foo%3', traceparent='00-01', tracestate='rojo%2'/
As tags suportadas incluem o nome do controlador, a rota, a estrutura e a ação.
O conjunto de ferramentas ORM no SQLComMenter é suportado para as seguintes linguagens de programação:
Pitão |
|
Java |
|
Rubi |
|
Node.js |
|
Para obter mais informações sobre o SQLCommenter e como usá -las em sua estrutura ORM, consulte a documentação do SQLCompler .
Use SQLComMenter para adicionar tags
Se você não estiver usando o ORM, você deve adicionar manualmente tags ou comentários do SQLCommenter no formato de comentário SQL correto à sua consulta SQL. Você também deve aumentar cada instrução SQL com um comentário contendo um par de valores de chave serializado. Use pelo menos uma das seguintes chaves:
-
action=''
-
controller=''
-
framework=''
-
route=''
-
application=''
-
db driver=''
Consulta Insights cai todas as outras chaves.
Desative insights de consulta
Console
Para desativar as idéias de consulta para uma instância de nuvem SQL usando o Google Cloud Console, siga estas etapas:
No Google Cloud Console, vá para a página de instâncias SQL em nuvem .
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- No ladrilho de configuração , clique em Editar configuração .
- Na seção Opções de configuração , expanda as informações da consulta .
- Limpe a caixa de seleção Ativar Insights de consulta .
- Clique em Salvar .
gcloud
Para desativar as idéias de consulta para uma instância do Cloud SQL usando gcloud
, execute gcloud sql instances patch
com o sinalizador --no-insights-config-query-insights-enabled
da seguinte maneira, depois de substituir a INSTANCE_ID pelo ID da instância.
gcloud sql instances patch INSTANCE_ID \ --no-insights-config-query-insights-enabled
DESCANSAR
Para desativar as informações de consulta para uma instância do Cloud SQL usando a API REST, ligue para o método queryInsightsEnabled
instances.patch
false
Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:
- project-id : o ID do projeto.
- instance-id : o ID da instância.
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Corpo JSON da solicitação:
{ "settings" : { "insightsConfig" : { "queryInsightsEnabled" : false } } }
Para enviar sua solicitação, expanda uma destas opções:
Você deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "PENDING", "user": "[email protected]", "insertTime": "2021-01-28T22:43:40.009Z", "operationType": "UPDATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Desativar idéias de consulta para o Cloud SQL Enterprise Plus Edition
Para desativar as idéias de consulta para o Cloud SQL Enterprise Plus Edition, faça o seguinte:
No Google Cloud Console, vá para a página de instâncias SQL em nuvem .
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Clique em Editar .
- Na seção Personalizar sua instância , expanda as informações da consulta .
- Limpe a caixa de seleção Enable Enterprise Plus .
- Clique em Salvar .
O que vem a seguir
- Blog de lançamento: resolver gargalos de banco de dados mais rapidamente com os mais recentes Insights de consulta para o Cloud SQL Enterprise Plus Edition
- Ver Google Cloud métricas .
- Blog: Aumente suas habilidades de solução de problemas de desempenho de consulta com informações de sql em nuvem
- VÍDEO: Apresentando insights da Cloud SQL
- Podcast: Cloud SQL Insights
- Insights Codelab
- Otimizar o alto uso da CPU
- Otimizar alto uso de memória
- Blog: Introdução ao SQLComMenter: Uma Biblioteca de Instrução Auto-Instrução ORM ORM
- Blog: Ativar marcação de consulta com SQLCommenter