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é 100 KB.
- 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 | PostgreSQL 9.6 ou posterior | PostgreSQL 12 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 ou em instâncias de réplica de leitura |
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 | 100 KB |
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 36 GB. Para 30 dias, você precisará de aproximadamente 155 GB. O Query Insights para a edição Enterprise Plus do Cloud SQL usa até 10 MB de RAM (memória compartilhada). As métricas devem estar disponíveis no Query Insights em até 30 segundos 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 do Cloud Trace
Para visualizar planos de consulta e suas visualizações de ponta a ponta, seu Google Cloud o projeto deve ter a API Cloud 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 Cloud 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
Cloud 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 recurso de insights de consulta para a edição Cloud SQL Enterprise Plus no Cloud SQL. O recurso de insights de consulta para a edição Cloud SQL Enterprise Plus permite encerrar sessões e transações de longa duração em consultas ativas e aumenta a retenção de dados métricos para 30 dias. Você deve marcar esta caixa de seleção para habilitar a solução de problemas assistida por IA ( Visualização ). | Não disponível | Disponível Padrão : Desativado |
Análise de consulta ativa | Permite revisar detalhes sobre suas consultas em execução ativa. Se habilitado na edição Cloud SQL Enterprise Plus, você também poderá encerrar sessões e transações de longa duração. Marque esta caixa de seleção para habilitar consultas ativas para sua instância do Cloud SQL para PostgreSQL. Para obter mais informações, consulte Monitorar consultas ativas . | Disponível Padrão : Desativado | Disponível Padrão : Desativado |
Recomendações do consultor de índice | Fornece recomendações de índice para acelerar o processamento de consultas. Para obter mais informações, consulte Usar o Index Advisor . A ativação do Index Advisor requer a reinicialização da instância. A desativação do Index Advisor não requer reinicializaçã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 1024 a 100000 .Padrão : 10000 bytes. |
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 : 200 |
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.
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 de1024
a100000
O valor padrão é10000
bytes.--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. Por padrão, a taxa máxima de amostragem é200
amostras de planos de consulta por minuto em todos os bancos de dados da instância.
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
.
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
.
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 de1024
a100000
O valor padrão é10000
bytes. -
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. A taxa de amostragem máxima padrão é200
amostras de plano de consulta por minuto em todos os bancos de dados da instância.
Aqui está um exemplo:
resource "google_sql_database_instance" "INSTANCE_NAME" { name = "INSTANCE_NAME" database_version = "POSTGRESQL_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. Para obter mais informações, consulte a tabela de eventos do PostgreSQL.
- 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
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.
|
Eventos de espera | A tabela exibe a lista dos principais 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.
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 traços do plano de consulta não coletam ou armazenam valores constantes e remove qualquer informação do PII que a constante possa mostrar.
Para o PostgreSQL 9.6 e 10, o consulta Insights exibe consultas normalizadas, ou seja ?
substitui o valor constante literal. No exemplo a seguir, o nome constante é removido e ?
substitui isso.
UPDATE "demo_customer" SET "customer_id" = ?::uuid, "name" = ?, "address" = ?, "rating" = ?, "balance" = ?, "current_city" = ?, "current_location" = ? WHERE "demo_customer"."id" = ?
Para o PostgreSQL versão 11 e posterior, $1
, $2
e variáveis semelhantes substituem os valores constantes literais.
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
Filtro por tags de consulta
Para solucionar um aplicativo, você deve primeiro adicionar tags às suas consultas SQL . As tags de carga de consulta fornecem uma quebra da carga de consulta da tag selecionada ao longo do tempo.
O consulta Insights fornece monitoramento centrado no aplicativo para diagnosticar problemas de desempenho para aplicativos criados usando ORMS. Se você é responsável por toda a pilha de aplicativos, o Consery Insights fornece monitoramento de consulta a partir de uma exibição de aplicativo. A marcação de consulta ajuda a encontrar problemas em construções de nível superior, como com a lógica de negócios ou um microsserviço.
Você pode marcar consultas pela lógica de negócios, por exemplo, o pagamento, inventário, análise de negócios ou tags de envio. Você pode encontrar a carga de consulta que a lógica de negócios cria. Por exemplo, você pode observar eventos inesperados, como picos para uma tag de análise de negócios às 13h ou crescimento inesperado para uma tendência de serviço de pagamento na semana anterior.
Para calcular a carga do banco de dados para tags , o Consery Insights usa a quantidade de tempo gasto por cada consulta que usa a tag que você seleciona. A ferramenta calcula o tempo de conclusão no limite de minuto usando o tempo de parede.
No painel do consulta Insights, para visualizar a tabela de tags, selecione Tags . A tabela classifica as tags por sua carga total por tempo total.

Você pode classificar a tabela selecionando uma propriedade nas tags de filtro ou clicando em um cabeçalho de coluna. A tabela mostra as seguintes propriedades:
- Ação, controlador, estrutura, rota, aplicação, driver de banco de dados : cada propriedade que você adicionou às suas consultas aparece como uma coluna. Pelo menos uma dessas propriedades deve ser adicionada se você deseja 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.
- 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 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, acesse a página Instâncias do Cloud SQL .
- Para abrir a página de 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, acesse a página Instâncias do Cloud SQL .
- Para abrir a página de 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
- Veja Métricas de Cloud SQL . As seqüências de strings do tipo de métrica consultas começam com
database/postgresql/insights
. - 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
- Otimize o alto uso da CPU
- Otimize o uso de alta 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
Esta página descreve como usar o painel do consulta Insights para detectar e analisar problemas de desempenho com suas consultas.
Introdução
As Insights de consulta ajudam a detectar, diagnosticar e impedir problemas de desempenho da consulta para bancos de dados SQL em nuvem. Ele suporta monitoramento intuitivo e fornece informações de diagnóstico que ajudam a ir além da detecção para identificar a causa raiz dos problemas de desempenho.
Com o Consults Insights, você pode monitorar o desempenho em um nível de aplicativo e rastrear a fonte de uma consulta problemática na pilha de aplicativos por modelo, visualização, controlador, rota, usuário e host. A ferramenta de insights de consulta pode se integrar às suas ferramentas existentes de monitoramento de aplicativos (APM) e Google CloudServiços usando padrões abertos e APIs. Dessa forma, você pode monitorar e solucionar problemas de consulta usando sua ferramenta favorita.
As Insights de consulta ajudam a melhorar o desempenho da consulta SQL em nuvem, orientando -o nas etapas a seguir:
- Veja a carga do banco de dados para consultas superiores
- Identifique uma consulta ou tag potencialmente problemática
- Examine a consulta ou a tag para identificar problemas
- Rastrear a fonte do problema
Consulta Insights para Cloud SQL Enterprise Plus Edition
Se você estiver usando o Cloud SQL Enterprise Plus Edition, poderá acessar recursos adicionais em Insights de consulta para realizar diagnósticos avançados de desempenho da consulta. Além dos recursos padrão do painel do consultor Insights, a consulta Insights para o Cloud SQL Enterprise Plus Edition permite fazer o seguinte:
- Capture e analise os eventos de espera por todas as consultas executadas.
- Filtre o carregamento do banco de dados agregado por dimensões adicionais, como consultas, tags, tipos de eventos de espera e muito mais.
- Capture planos de consulta para todas as consultas executadas.
- Exiba até 200 planos de consulta por minuto.
- Capture texto de consulta mais longo até 100 kb.
- Obtenha atualizações quase em tempo real para métricas (na ordem dos segundos).
- Mantenha uma retenção mais longa de 30 dias de métricas.
- Obtenha recomendações de índice do Index Advisor.
- Encerrar uma sessão ou transação de longa duração em consultas ativas.
- Acesse a solução de problemas assistida por AI ( visualização ).
A tabela a seguir compara os requisitos funcionais e os recursos do consulta Insights para o Cloud SQL Enterprise Edition com Insights de consulta para o Cloud SQL Enterprise Plus Edition.
Área de comparação | Consulta Insights para Cloud SQL Enterprise Edition | Consulta Insights para Cloud SQL Enterprise Plus Edition |
---|---|---|
Versões de banco de dados suportadas | PostgreSql 9.6 ou mais tarde | PostgreSql 12 ou mais tarde |
Tipos de máquina suportados | Suportado em todos os tipos de máquina | Não suportado em instâncias que usam um tipo de máquina de núcleo compartilhado ou em instâncias de leitura de réplicas |
Regiões suportadas | Locais regionais de nuvem SQL | Locais regionais da Cloud SQL Enterprise Plus Edition |
Período de retenção de métricas | 7 dias | 30 dias |
Limite de comprimento da consulta Máximo | 4500 bytes | 100 KB |
Plano de consulta Amostra máxima | 20 | 200 |
Análise de eventos de espera | Não disponível | Disponível |
Recomendações de consultor de índices | 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 Ai ( visualização ) | Não disponível | Disponível |
Ativar Insights de consulta para o Cloud SQL Enterprise Plus Edition
Para ativar a consulta Insights para o Cloud SQL Enterprise Plus Edition, selecione os recursos Ativar Enterprise Plus ao ativar a consulta Insights na sua instância de edição da Cloud SQL Enterprise Plus.
Preços
Não há custo adicional para consultas no Cloud SQL Enterprise Edition ou no Cloud SQL Enterprise Plus Edition Instâncias.
Requisitos de armazenamento
Consulta Insights para o Cloud SQL Enterprise Edition não ocupa nenhum espaço de armazenamento no seu espaço de armazenamento em nuvem SQL. As métricas são armazenadas no monitoramento da nuvem. Para solicitações de API, consulte Preços de monitoramento de nuvem. O monitoramento da nuvem tem uma camada que você pode usar sem custo adicional.
Consulta Insights para o Cloud SQL Enterprise Plus Edition Stores Métricas Dados no mesmo disco conectado à sua instância SQL em nuvem e requer que você mantenha o armazenamento automático aumenta a configuração ativada.
O requisito de armazenamento para sete dias em dados é de aproximadamente 36 GB. Por 30 dias, você precisa de aproximadamente 155 GB. Consulta Insights para o Cloud SQL Enterprise Plus Edition usa até 10 MB de RAM (memória compartilhada). Espera -se que as métricas estejam disponíveis em Insights de consulta dentro de 30 segundos após a conclusão da consulta. As taxas de armazenamento aplicáveis se aplicam .Antes de começar
Antes de usar as informações de consulta, faça o seguinte.
- Adicione funções e permissões necessárias .
- Habilite a API de traço de nuvem .
- Se você estiver usando o consulta Insights para o Cloud SQL Enterprise Plus Edition, verifique se o aumento do armazenamento automático está ativado para a instância .
Funções e permissões necessárias
Para usar insights de consulta, você precisa conceder uma função predefinida, criar uma função personalizada ou fornecer uma conta de usuário com as permissões de identidade e gerenciamento de acesso necessárias.
Para obter mais informações sobre como conceder funções, consulte Gerenciar acesso .
Para obter as permissões de que você precisa acessar os dados de execução de consulta histórica no painel do consultor Insights, peça ao seu administrador que conceda a você as seguintes funções do IAM no projeto que hospeda a instância da Cloud SQL:
- Visualizador de monitoramento de insights do banco de dados (
roles/databaseinsights.monitoringViewer
) - Visualizador SQL em nuvem (
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 os dados de execução de consulta histórica no painel do consulta Insights. 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 os dados de execução de consulta histórica no painel do consulta Insights:
-
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, em insights de banco de dados, você pode solicitar ao seu administrador que conceda a função Predefined a você. Então, no Cloud SQL, você pode pedir ao seu administrador que concedaroles/databaseinsights.viewer
você uma das seguintes funções predefinidas:- Editor SQL em nuvem (
roles/cloudsql.editor
) - Admin em nuvem admin (
roles/cloudsql.admin
)
Ative a API de traço de nuvem
Para ver os planos de consulta e suas visões de ponta a ponta, seu Google Cloud O projeto deve ter a API de rastreamento em nuvem ativada. Esta configuração permite que o seuGoogle Cloud Projeto Receba dados de rastreamento de fontes autenticadas sem nenhum custo adicional. Esses dados podem ajudá -lo a detectar e diagnosticar problemas de desempenho em sua instância.
Para confirmar que a API do Cloud Trace está ativada, siga estas etapas:
- Do Google Cloud Console, vá para APIs e serviços :
- Clique em Ativar APIs e serviços .
- Na barra de pesquisa, insira
Cloud Trace API
. - Se a API ativada for exibida, esta API está ativada e não há nada para você fazer. Caso contrário, clique em Ativar .
Habilitar aumentos de armazenamento automático
Se você estiver usando o consulta Insights para o Cloud SQL Enterprise Plus Edition, verifique se a configuração da instância para ativar o aumento do armazenamento automático permanecerá ativado. Por padrão, esta opção está ativada para instâncias SQL em nuvem.
Se você desativou anteriormente essa configuração de instância e deseja ativar as informações de consulta para a edição do Cloud SQL Enterprise Plus, reative o armazenamento automático aumenta primeiro. Você não pode desativar aumentos automáticos de armazenamento e ativar as informações de consulta para a edição de nuvem SQL Enterprise Plus.
Ativar insights de consulta
Quando você habilita informações de consulta, todas as outras operações são suspensas temporariamente. Essas operações incluem verificações de saúde, registro, monitoramento e outras operações de instância.
Console
Ativar informações de consulta para uma instância
No Google Cloud console, acesse a página Instâncias do Cloud SQL .
- Para abrir a página de 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 Personalizar sua instância , expanda as informações da consulta .
- Selecione a caixa de seleção Ativar Insights de consulta .
- Opcional: selecione Recursos adicionais para sua instância. Alguns recursos estão disponíveis apenas para o Cloud SQL Enterprise Plus Edition.
- Clique em Salvar .
Recurso | Descrição | Edição corporativa em nuvem sql | Cloud SQL Enterprise Plus Edition |
---|---|---|---|
Ativar recursos Enterprise Plus | Selecione esta caixa de seleção para ativar a consulta Insights para o Cloud SQL Enterprise Plus Edition no Cloud SQL. Consulta Insights para o Cloud SQL Enterprise Plus Edition permite encerrar sessões e transações de longa duração em consultas ativas e aumenta a retenção de dados métricos para 30 dias. Você deve selecionar esta caixa de seleção para ativar a solução de problemas ( visualização ) assistida por AI. | Não disponível | Disponível Padrão : desativado |
Análise de consulta ativa | Permite revisar os detalhes sobre suas consultas ativamente em execução. Se ativado no Cloud SQL Enterprise Plus Edition, você também poderá encerrar sessões e transações de longa duração. Selecione esta caixa de seleção para ativar as consultas ACTIVE para o seu SQL em nuvem para a instância do PostGresql. Para obter mais informações, consulte Monitor de consultas ativas . | Disponível Padrão : desativado | Disponível Padrão : desativado |
Recomendações de consultor de índices | Fornece recomendações de índice para acelerar o processamento da consulta. Para mais informações, consulte Use o Index Advisor . A ativação do Advisor do índice requer uma reinicialização da instância. Desativar o Advisor Index Advisor não requer uma reinicialização. | Não disponível | Disponível Padrão : desativado |
Solução de problemas assistida por AI | Selecione esta caixa de seleção para ativar a detecção de anomalias de desempenho, a causa raiz e a análise da situação e obter recomendações para corrigir problemas com suas consultas e banco de dados. Esse recurso está em visualização e você pode ativar e acessar esse recurso apenas usando o Google Cloud console. Para obter mais informações, consulte Observe e solucionar problemas com a assistência da IA . | Não disponível | Disponível Padrão : desativado |
Armazenar endereços IP do cliente | Selecione esta caixa de seleção para ativar o armazenamento de endereços IP do cliente. O Cloud SQL pode armazenar os endereços IP de onde as consultas estão vindo e permitem que você agrupe esses dados para executar métricas contra ele. As consultas vêm de mais de um host. A revisão de gráficos para consultas dos endereços IP do cliente pode ajudar a identificar a fonte de um problema. | Disponível Padrão : desativado | Disponível Padrão : desativado |
Armazenar tags de aplicativos | Selecione esta caixa de seleção para ativar o armazenamento de tags do aplicativo. O armazenamento de tags de aplicativos ajuda a determinar as rotas APIs e Model-View-Controller (MVC) que estão fazendo solicitações e agruparem os dados para executar métricas contra ele. Esta opção requer que você comente consultas com um conjunto específico de tags usando o SQLCommenter Open Source Relation Relation Mapping (ORM) Biblioteca de instrumentação automática. Essas informações ajudam a consultar informações a identificar a fonte de um problema e o MVC do qual o problema está chegando. Os caminhos de aplicativos ajudam você com o monitoramento do aplicativo. | Disponível Padrão: Desativado | Disponível Padrão: Desativado |
Personalize comprimentos de consulta | Selecione esta caixa de seleção para personalizar o limite para o comprimento de uma sequência de consulta. Comprimentos de consulta mais altos são mais úteis para consultas analíticas, mas também exigem mais memória. Qualquer sequência de consulta que se desligue acima do limite especificado se torna truncado na tela. Alterar o limite de comprimento da consulta exige que você reinicie a instância. Você ainda pode adicionar tags a consultas que excedem 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 1024 a 100000 .Padrão : 10000 bytes. |
Defina a taxa máxima de amostragem | Selecione esta caixa de seleção para definir a taxa máxima de amostragem. A taxa de amostragem é o número de amostras de plano de consulta executadas que são capturadas por minuto em todos os bancos de dados na instância. Aumentar a taxa de amostragem provavelmente fornecerá mais pontos de dados, mas pode aumentar a sobrecarga de desempenho. Para desativar a amostragem, defina o valor como 0 . | Você altera esse valor para um número de 0 para 20 .Padrão : 5 . | Você pode aumentar o máximo para 200 para fornecer mais pontos de dados.Padrão : 200 |
Ativar informações de consulta para várias instâncias
No Google Cloud console, acesse a página Instâncias do Cloud SQL .
- Clique no menu More Ações em qualquer linha.
- Selecione Ativar Insights de consulta .
- Na caixa de diálogo, selecione as informações de consulta Ativar para várias instâncias .
- Clique em Habilitar .
- Na caixa de diálogo subsequente, selecione as instâncias para as quais você deseja ativar insights de consulta.
- Clique em Ativar 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
como segue, depois de substituir INSTANCE_ID pelo ID da instância.
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 vêm e ajudam a agrupar esses dados a executar métricas contra ele. As consultas vêm de mais de um host. A revisão de gráficos para consultas dos endereços IP do cliente pode ajudar a identificar a fonte de um problema.
--insights-config-record-application-tags
Armazena tags de aplicativos que ajudam você a determinar as rotas APIs e Model-View-Controller (MVC) que estão fazendo solicitações e agrupam os dados para executar métricas contra ele. Esta opção exige que você comente consultas com um conjunto específico de tags. Você pode fazer isso usando a biblioteca de auto-instrumentação do SQLCommenter Open-Source-Relational Mapenation Mapping (ORM). Essas informações ajudam a consultar informações a identificar a fonte de um problema e o MVC de onde vem o problema. Os caminhos de aplicativos ajudam você com o monitoramento do aplicativo.
--insights-config-query-string-length
Define o limite padrão de comprimento da consulta. Comprimentos de consulta mais altos são mais úteis para consultas analíticas, mas também exigem mais memória. Alterar o comprimento da consulta exige que você reinicie a instância. Você ainda pode adicionar tags a consultas que excedem o limite de comprimento. Para o Cloud SQL Enterprise Edition, você pode especificar um valor em bytes de
256
a4500
O comprimento da consulta padrão é1024
bytes. Para o Cloud SQL Enterprise Plus Edition, você pode especificar um limite em bytes de1024
a100000
O valor padrão é10000
bytes.--query_plans_per_minute
Por padrão, um máximo de 5 amostras de plano de consulta executadas são capturadas por minuto em todos os bancos de dados na instância. Aumentar a taxa de amostragem provavelmente fornecerá mais pontos de dados, mas pode adicionar uma sobrecarga de desempenho. Para desativar a amostragem, defina esse valor como
0
Para o Cloud SQL Enterprise Edition, você pode alterar o valor de 0 para 20. Para o Cloud SQL Enterprise Plus Edition, você pode aumentar o máximo de até 200 para fornecer mais pontos de dados. Por padrão, a taxa de amostragem máxima é200
amostras de plano de consulta por minuto em todos os bancos de dados na instância.
Substitua o seguinte:
- INSIGHTS_CONFIG_QUERY_STRING_LENGTH : o comprimento da sequência de consulta a ser armazenado, em bytes.
- API_TIER_STRING : a configuração da instância personalizada a ser usada para a instância.
- REGION : a região para a 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 ativar as informações de consulta para uma instância do Cloud SQL usando a API REST, ligue para o método instances.patch
com as configurações insightsConfig
.
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 ativar as informações de consulta para uma instância de SQL em nuvem, defina o sinalizador query_insights_enabled
como true
.
Além disso, você pode usar um ou mais dos seguintes sinalizadores opcionais:
-
query_string_length
: Para o Cloud SQL Enterprise Edition, você pode especificar um valor em bytes de256
a4500
O comprimento da consulta padrão é1024
bytes. Para o Cloud SQL Enterprise Plus Edition, você pode especificar um limite em bytes de1024
a100000
O valor padrão é10000
bytes. -
record_application_tags
: Defina o valor comotrue
se você deseja gravar tags de aplicativos da consulta. -
record_client_address
: defina o valor comotrue
se desejar gravar o endereço IP do cliente. O padrão éfalse
. -
query_plans_per_minute
: Para o Cloud SQL Enterprise Edition, você pode definir o valor de0
a20
O padrão é5
Para o Cloud SQL Enterprise Plus Edition, você pode aumentar o máximo de até200
para fornecer mais pontos de dados. A taxa máxima de amostragem padrão é200
amostras de plano de consulta por minuto em todos os bancos de dados na instância.
Aqui está um exemplo:
resource "google_sql_database_instance" "INSTANCE_NAME" { name = "INSTANCE_NAME" database_version = "POSTGRESQL_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 de terraform em um Google Cloud Projeto, conclua as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Shell Cloud .
Defina o padrão Google Cloud Projeto onde você deseja aplicar suas configurações de Terraform.
Você só precisa executar este comando uma vez por projeto e executá -lo em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente são substituídas se você definir valores explícitos no arquivo de configuração do Terraform.
Prepare 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 Shell Cloud , crie um diretório e um novo arquivo nesse diretório. O nome do arquivo deve ter a extensão
.tf
- por exemplo,main.tf
Neste tutorial, o arquivo é referido comomain.tf
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Se você estiver seguindo um tutorial, poderá copiar o código de exemplo em cada seção ou etapa.
Copie o código de amostra no recém -criado
main.tf
Opcionalmente, copie o código do GitHub. Isso é recomendado quando o trecho do Terraform faz parte de uma solução de ponta a ponta.
- 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 Google Provider, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
- Revise a configuração e verifique se os recursos que a Terraform criarão ou atualizam corresponder às suas expectativas:
terraform plan
Faça correções para a configuração conforme necessário.
- Aplique a configuração do Terraform executando o seguinte comando e inserindo
yes
no prompt:terraform apply
Aguarde até que o Terraform exiba o "Aplicar completo!" mensagem.
- 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 a Terraform os tenha criado ou atualize.
Espera -se que as métricas estejam disponíveis em Insights de consulta poucos minutos após a conclusão da consulta. Revise a política de retenção de dados de monitoramento da nuvem .
Os traços de Insights de consulta são armazenados no rastreamento da nuvem. Revise a política de retenção de dados de rastreamento em nuvem .
Veja o painel de Insights de consulta
The Query insights dashboard shows the query load based on factors that you select. Query load is a measurement of the total work for all the queries in the instance in the selected time range. The dashboard provides a series of filters that help you view query load.
To open the Query insights dashboard, follow these steps:
- To open the Overview page of an instance, click the instance name.
- In the Cloud SQL navigation menu, click Query insights , or click Go to Query insights for more in-depth info on queries and performance on the Instance overview page.
The Query insights dashboard opens. Depending on whether you're using query insights for Cloud SQL Enterprise edition or query insights for Cloud SQL Enterprise Plus edition, the Query insights dashboard shows the following information about your instance:
Cloud SQL Enterprise Plus edition

- All queries : Shows database load for all queries for the selected time range. Each query is individually color-coded. To view a point in time for a specific query, hold the pointer over the chart for the query.
- Database : Filters query load on a specific database or all databases.
- User : Filters query load from a specific user account.
- Client address : Filters query load from a specific IP address.
- Time range : Filters query load by time ranges, such as 1 hour, 6 hours, 1 day, 7 days, 30 days, or a custom range.
- Wait event types : Filters query load by CPU and Lock wait event types.
- Queries , Wait event types , Databases , Users , Tags , and Client addresses : Sort by the top dimensions that contribute the most to database load in the chart. See Filter the database load .
Cloud SQL Enterprise edition

- Database : Filters query load on a specific database or all databases.
- User : Filters query load from a specific user account.
- Client address : Filters query load from a specific IP address.
- Time range : Filters query load by time ranges, such as 1 hour, 6 hours, 1 day, 7 days, 30 days, or a custom range.
- Database load graph : Displays the query load graph, based on filtered data.
- CPU capacity, CPU and CPU wait, IO wait, and Lock wait : Filters loads based on the options that you select. See View the database load for top queries for details about each of these filters.
- Queries and Tags : Filters query load by either a selected query or a selected SQL query tag. See Filter the database load .
View the database load for all queries
Database query load is a measure of the work (in CPU seconds) that the executed queries in your selected database perform over time. Each running query is either using or waiting for CPU resources, IO resources, or lock resources. Database query load is the ratio of the amount of time taken by all the queries that are completed in a given time window to the wall-clock time.
The top-level query insights dashboard shows the Database load — all top queries graph. Drop-down menus on the dashboard let you filter the graph for a specific database, user, or client address.
Cloud SQL Enterprise Plus edition

Cloud SQL Enterprise edition

Colored lines in the graph show the query load, split into categories:
- CPU capacity : The number of CPUs available on the instance.
- CPU and CPU Wait : The ratio of the time taken by queries in an active state to wall-clock time. IO and Lock waits don't block queries that are in an active state. This metric might mean that the query is either using the CPU or waiting for the Linux scheduler to schedule the server process running the query while other processes are using the CPU.
- IO Wait : The ratio of time taken by queries that are waiting for IO to wall-clock time. IO wait includes Read IO Wait and Write IO Wait. If you want a breakdown of information for IO waits, you can see it in Cloud Monitoring. See Cloud SQL metrics for more information. For more information, see the PostgreSQL event table .
- Lock Wait : The ratio of time taken by queries that are waiting for Locks to wall-clock time. It includes Lock Waits, LwLock Waits, and Buffer pin Lock waits. To see a breakdown of information for lock waits, use Cloud Monitoring. See Cloud SQL metrics for more information.
Colored lines in the graph show per database load by execution time. Review the graph and use the filtering options to explore these questions:
- Is the query load high? Is the graph spiking or elevated over time? If you don't see a high load, then the problem isn't with your query.
- How long has the load been high? Is it high only now or has it been high for a long time? Use the range selector to select various time periods to find out how long the problem has lasted. Zoom in to view a time window where query load spikes are observed. Zoom out to view up to one week of the timeline.
- What's causing the high load? You can select options to examine the CPU capacity, CPU and CPU wait, Lock wait, or IO wait. The graph for each of these options is a different color so that you can spot the one with the highest load. The dark blue line on the graph shows the maximum CPU capacity of the system. It lets you compare the query load with the maximum CPU system capacity. This comparison helps you determine whether an instance is running out of CPU resources.
- Which database is experiencing the load? Select different databases from the Databases drop-down menu to find the databases with the highest loads.
- Do specific users or IP addresses cause higher loads? Select different users and addresses from the drop-down menus to identify the ones that are causing higher loads.
Filter the database load
You can filter the database load by queries or tags. If you're using query insights for Cloud SQL Enterprise Plus edition, then you can customize the database load chart to break down the displayed data using any of the following dimensions:All queries
Wait event types
Eventos de espera
Bancos de dados
Usuários
Etiquetas
Client addresses
To customize the database load chart, select a dimension from the Database Load by execution time drop-down.
View the top contributors to database load
To view the top contributors to the database load, you can use the Top dimensions by database load table. The Top dimensions by database load table displays the top contributors for the time period and dimension that you select in the Database Load by execution time chart drop-down. You can modify the time period or dimension to view the top contributors for a different dimension or time period.
In the Top dimensions by data load table, you can select the following tabs.
Aba | Descrição |
---|---|
Consultas | The table displays the top normalized queries by total execution time. For each query, the data shown in columns are listed as follows:
|
Wait event types | The table displays the list of top wait event types that occurred during the selected time period. This table is only available for query insights for Cloud SQL Enterprise Plus edition.
|
Eventos de espera | The table displays the list of top wait events that occurred during the selected time period. This table is only available for query insights for Cloud SQL Enterprise Plus edition.
|
Bancos de dados | The table shows the list of top databases that contributed to the load during the chosen time period across all executed queries.
|
Usuários | The table shows the list of top users for the selected time period across all executed queries.
|
Etiquetas | For information about tags, Filter by query tags . |
Client addresses | The table shows the list of top users for the selected time period across all executed queries.
|
Filter by queries
The Top queries table provides an overview of the queries that cause the most query load. The table shows all the normalized queries for the time range and options selected on the Query insights dashboard. It sorts queries by the total execution time during the time range that you selected.
Cloud SQL Enterprise Plus edition
To sort the table, select a column heading.

Cloud SQL Enterprise edition
To sort the table, select a column heading or a property from Filter queries .

The table shows the following properties:
- Query : the normalized query string. By default, query insights shows only 1024 characters in the query string. Queries labeled
UTILITY COMMAND
usually includeBEGIN
,COMMIT
, andEXPLAIN
commands or wrapper commands. - Database : the database against which the query was run.
- Recommendations : the suggested recommendations, such as Create indexes , to improve query performance.
- Load by total time/Load by CPU/Load by IO wait/Load by lock wait : The options by which you can filter specific queries to find the largest load.
- % load by Queries : The percentage load by individual query.
- Analyze latency : if you enabled AI-assisted troubleshooting ( Preview ) for this instance, then you can click this link to troubleshoot slow queries.
- Avg execution time (ms) : the average time for the query to execute.
- Times called : the number of times the application called the query.
- Avg rows returned : the average number of rows returned for the query.
Query insights stores and displays only normalized queries.
By default, query insights doesn't collect IP addresses or tag information. You can enable query insights to collect this information and, when required, disable collection.
Query plan traces don't collect or store any constant values and removes any PII information that the constant might show.
For PostgreSQL 9.6 and 10, query insights displays normalized queries, that is, ?
replaces the literal constant value. In the following example, the name constant is removed and ?
replaces it.
UPDATE "demo_customer" SET "customer_id" = ?::uuid, "name" = ?, "address" = ?, "rating" = ?, "balance" = ?, "current_city" = ?, "current_location" = ? WHERE "demo_customer"."id" = ?
For PostgreSQL version 11 and later, $1
, $2
, and similar variables replace literal constant values.
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
Filter by query tags
To troubleshoot an application, you must first add tags to your SQL queries . Query load tags provide a breakdown of the query load of the selected tag over time.
Query insights provides application-centric monitoring to diagnose performance problems for applications built using ORMs. If you're responsible for the entire application stack, query insights provides query monitoring from an application view. Query tagging helps you find issues at higher-level constructs, such as with the business logic or a microservice.
You might tag queries by the business logic, for example, the payment, inventory, business analytics, or shipping tags. You can then find the query load that the various business logic create. For example, you might observe unexpected events, such as spikes for a business analytics tag at 1 PM or unexpected growth for a payment service trending over the previous week.
To calculate the Database load for tag , query insights uses the amount of time taken by every query that uses the tag that you select. The tool calculates the completion time at the minute boundary by using wall-clock time.
On the query insights dashboard, to view the tags table, select Tags . The table sorts tags by their total load by total time.

You can sort the table by selecting a property from Filter tags , or by clicking a column heading. The table shows the following properties:
- Action, Controller, Framework, Route, Application, DB driver : Each property that you added to your queries appears as a column. At least one of these properties must be added if you want to filter by tags.
- Load by total time/Load by CPU/Load by IO wait/Load by lock wait : Options to filter specific queries to find the largest load for each option.
- Avg execution time (ms) : The average time for the query to run.
- Avg rows returned : The average number of rows returned for the query.
- Times called : The number of times the application called the query.
- Database : The database against which the query was run.
View query details for a specific query or tag
To determine whether a specific query or tag is the root cause of the problem, do the following from the Queries tab or Tags tab, respectively:
- To sort the list in descending order, click the Load by total time header.
- Click the query or tag at the top of the list. It has the highest load and is taking more time than the others.
The Query details page opens and shows the details of the selected query or tag.
Examine a specific query load
The Query details page for a selected query appears as follows:

The Database load — specific query graph shows a measure of the work (in CPU seconds) that your normalized query has performed in your selected query over time. To calculate load, it uses the amount of time taken by the normalized queries that are completed at the minute boundary to the wall-clock time. At the top of the table, the first 1024 characters of the normalized query, with literals removed for aggregation and PII reasons, are displayed.

As with the total queries graph, you can filter the load for a specific query by Database , User , and Client address . Query load is split into CPU capacity , CPU and CPU wait , IO wait , and Lock wait .
Examine a specific tagged query load
The dashboard for a selected tag appears as follows. For example, if all queries from a microservices payment are tagged as payment
, you can see the amount of query load that's trending by viewing the tag payment
.

The Database load — specific tags graph shows a measure of the work (in CPU seconds) that queries matching your selected tags have performed in your selected database over time. As with the total queries graph, you can filter the load for a specific tag by Database , User , and Client address .
Examine operations in a sampled query plan
A query plan takes a sample of your query and breaks it down into individual operations. It explains and analyzes each operation in the query.
The Query plan samples graph shows all the query plans running at particular times and the amount of time each plan took to run. You can change the rate at which query plan samples are captured per minute. See Enable Query Insights .

By default, the panel on the right shows the details for the sample query plan that takes the longest time, as visible on the Query plan samples graph. To see the details for another sample query plan, click the relevant circle on the graph. Expanded details show a model of all the operations in the query plan.
Each operation shows the latency, rows returned, and the cost of the operation. When you select an operation, you can see more details, such as shared hit blocks, the type of schema, loops, and plan rows.

Try to narrow down the problem by looking into the following questions:
- What's the resource consumption?
- How does it relate to other queries?
- Does consumption change over time?
Examine latency
Latency is the time taken for the normalized query to complete, in wall-clock time. You use the Latency graph to examine latency on the query or tag. The latency dashboard shows the 50th, 95th, and 99th percentile latencies to find outlier behaviors.
The following image shows the database load graph at the 50th percentile for a specific query with filters selected for CPU capacity, CPU and CPU wait, IO wait, and Lock wait.

The latency of parallel queries is measured in wall-clock time even though the query load can be higher for the query due to multiple cores being used to run part of the query.
Try to narrow down the problem by looking into the following questions:
- What's causing the high load? Select options to look at the CPU capacity, CPU and CPU wait, I/O wait, or Lock wait.
- How long has the load been high? Is it only high now? Or has it been high for a long time? Change the time range to find the date and time that the load started performing poorly.
- Were there spikes in latency? Change the time window to study the historical latency for the normalized query.
Trace the source of the problem
When you find the areas and times where the load was the highest, identify the source of the problem by using tracing to drill down further.
To help you identify the specific source of the problem, such as a model, view, controller, route, host, or user, query insights provides an in-context end-to-end application trace view. This view helps you understand what's going on at the Database Layer for a specific request and to find the source of a problematic query by model, view, controllers, and route.
If you enable OpenCensus or OpenTelemetry , opencensus span information is sent to the database along with the tag information inside SQL comments. Any traces from the application to Cloud Logging are linked with database query plan traces to help identify the source of the problem.
Click the End to end tab in the Sample Query screen to look at the in-context trace.

To determine the client and user causing the problem, use the Top client addresses and Top users tables to find the highest loads. You can add a user or IP address to the filter to further analyze a specific user or client address. The details in the tables include the percentage of the query load, the average execution time in milliseconds, and the times called.

You can use Cloud Trace to see end-to-end tracing for each step in the query plan. On the query insights dashboard, click the View in trace link to open the Cloud Trace tool. The trace graph shows all the traces that have been run for the selected period.

For details, see Finding and viewing traces .
Add tags to SQL queries
Tagging SQL queries simplifies application troubleshooting. You can use sqlcommenter to add tags to your SQL queries either automatically or manually.
Use sqlcommenter with ORM
When you use ORM instead of directly writing SQL queries, you might not find application code that's causing performance challenges. You might also have trouble analyzing how your application code affects query performance. To tackle this issue, Query Insights provides an open source library called sqlcommenter. This library is useful for developers and administrators using ORM tools to detect which application code is causing performance problems.
If you're using ORM and sqlcommenter together, the tags are automatically created. You don't need to add or change code in your application.
You can install sqlcommenter on the application server. The instrumentation library allows application information related to your MVC framework to be propagated to the database along with the queries as a SQL comment. The database picks up these tags and starts recording and aggregating statistics by tags, which are orthogonal to statistics aggregated by normalized queries. Query insights shows the tags so that you know which application is causing the query load and can find the application code that's causing performance problems.
When you examine results in SQL database logs, they appear as follows:
SELECT * from USERS /action='run+this', controller='foo%3', traceparent='00-01', tracestate='rojo%2'/
Supported tags include the controller name, route, framework, and action.
The set of ORM tools in sqlcommenter is supported for the following programming languages:
Pitão |
|
Java |
|
Rubi |
|
Node.js |
|
For more information about sqlcommenter and how to use it in your ORM framework, see the sqlcommenter documentation .
Use sqlcommenter to add tags
If you're not using ORM, you must manually add sqlcommenter tags or comments in the correct SQL comment format to your SQL query. You must also augment each SQL statement with a comment containing a serialized key-value pair. Use at least one of the following keys:
-
action=''
-
controller=''
-
framework=''
-
route=''
-
application=''
-
db driver=''
Query insights drops all other keys.
Disable query insights
Console
To disable query insights for a Cloud SQL instance by using the Google Cloud console, follow these steps:
No Google Cloud console, acesse a página Instâncias do Cloud SQL .
- To open the Overview page of an instance, click the instance name.
- On the Configuration tile, click Edit configuration .
- In the Configuration options section, expand Query insights .
- Clear the Enable Query insights checkbox.
- Clique em Salvar .
gcloud
To disable query insights for a Cloud SQL instance by using gcloud
, run gcloud sql instances patch
with the --no-insights-config-query-insights-enabled
flag as follows, after replacing INSTANCE_ID with the ID of the instance.
gcloud sql instances patch INSTANCE_ID \ --no-insights-config-query-insights-enabled
DESCANSAR
To disable query insights for a Cloud SQL instance by using the REST API, call the instances.patch
method with queryInsightsEnabled
set to false
as follows.
Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:
- project-id : The project ID.
- instance-id : The instance ID.
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" }
Disable query insights for Cloud SQL Enterprise Plus edition
To disable query insights for Cloud SQL Enterprise Plus edition, do the following:
No Google Cloud console, acesse a página Instâncias do Cloud SQL .
- To open the Overview page of an instance, click the instance name.
- Clique em Editar .
- In the Customize your instance section, expand Query insights .
- Clear the Enable Enterprise Plus features checkbox.
- Clique em Salvar .
O que vem a seguir
- Launch blog: Solve database bottlenecks faster with the latest query insights for Cloud SQL Enterprise Plus edition
- See Cloud SQL metrics . The query insights metric type strings start with
database/postgresql/insights
. - Blog: Boost your query performance troubleshooting skills with Cloud SQL Insights
- Video: Introducing Cloud SQL Insights
- Podcast: Cloud SQL Insights
- Insights Codelab
- Optimize high CPU usage
- Optimize high memory usage
- Blog: Introducing Sqlcommenter: An open source ORM auto-instrumentation library
- Blog: Enable query tagging with Sqlcommenter