Monitorar consultas ativas

Nesta página, descrevemos como monitorar e solucionar problemas das consultas que estão ativas no seu banco de dados. O monitoramento dessas consultas pode ajudar a identificar as causas de latência do sistema e o alto uso da CPU.

No painel do Query Insights, você pode ver um resumo das transações ativas e uma lista de transações com consultas e estatísticas associadas. As transações são exibidas pelo horário de início da transação. Se houver um grande número de consultas em execução, os resultados poderão ser limitados a um subconjunto do total de consultas.

Antes de começar

Para monitorar consultas ativas, use o Cloud SQL Enterprise ou o Cloud SQL Enterprise Plus.

Para encerrar uma sessão ou uma transação de longa duração em consultas ativas, use o Cloud SQL Enterprise Plus na instância do Cloud SQL.

Para mais informações sobre as edições do Cloud SQL, consulte Introdução às edições do Cloud SQL.

Papéis e permissões necessárias

Para receber as permissões necessárias para visualizar consultas ativas, peça que o administrador conceda a você os seguintes papéis do IAM no projeto que hospeda a instância do Cloud SQL:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos têm as permissões necessárias para visualizar consultas ativas. Para acessar as permissões exatas que são necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para visualizar consultas ativas:

  • Visualizar o resumo da atividade do banco de dados e transações de longa duração:
    • databaseinsights.activeQueries.fetch
    • databaseinsights.activitySummary.fetch

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Ativar consultas ativas

Ao ativar o Query Insights, você ativa as consultas ativas automaticamente. Para encerrar uma sessão ou transação de longa duração em consultas ativas, use o Query Insights para o Cloud SQL Enterprise Plus.

Desativar consultas ativas

Não é possível desativar consultas ativas sem desativar o Query Insights. Para desativar consultas ativas e o Query Insights, consulte Desativar o Query Insights.

Visualizar consultas ativas

Para ver as consultas ativas, siga estas etapas:

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

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.

  3. Siga um dos procedimentos abaixo para exibir o painel do Query Insights:

    • Selecione a guia Query Insights.
    • Clique em Acessar o Query Insigths para ver informações mais detalhadas sobre consultas e desempenho. O painel do Query Insights abre. Ele mostra detalhes sobre a instância na parte superior.
  4. Clique na guia Consultas ativas.

    Nela, é possível modificar as informações de consulta que aparecem na tabela Transações em execução há mais tempo:

    • Bancos 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.

Ver consultas ativas normalizadas

É possível ver uma lista das principais transações de longa duração com consultas ativas normalizadas no painel do Query Insights. Uma consulta ativa normalizada remove dados sensíveis e retorna um resumo. O resumo é igual para valores diferentes usados no exemplo a seguir:

  • Consultas regulares

    • select * from test_table where id=1;
    • select * from test_table_where id=2;
  • Resumo ou consulta normalizada

    • select * from test_table where id=?;

Uma consulta executada em sessões diferentes é exibida como entradas diferentes no painel.

Ver as principais transações em execução há mais tempo

A tabela Transações em execução há mais tempo no painel do Query Insights contém as seguintes colunas:

Nome da coluna Descrição
ID da sessão Identificador exclusivo da sessão.
Consulta Texto da consulta SQL.
Estado da sessão O estado da sessão.
Duração da consulta Por quanto tempo a consulta está em execução.
ID da sessão de bloqueio O ID da sessão que está bloqueando a sessão.
Tipo de evento de espera O tipo de evento de espera, se a solicitação for bloqueada para execução de consulta.
Recurso de espera O recurso para o qual a solicitação está aguardando no momento, se a solicitação for bloqueada para execução de consulta.
Duração da espera da transação A duração da espera atual, se a sessão estiver bloqueada.
Leituras lógicas O número de leituras lógicas que foram realizadas pela solicitação.
Leituras O número de leituras que foram realizadas pela solicitação.
Gravações O número de gravações que foram realizadas pela solicitação.
Banco de dados Banco de dados em que a sessão está em execução.
Usuário Nome do usuário conectado ao banco de dados.
Endereço do cliente O endereço IP específico do cliente que enviou uma consulta.
Tempo de CPU (ms) O tempo de CPU em milissegundos usado pela solicitação.
Nome do aplicativo Nome do aplicativo que iniciou a sessão.
Linhas da transação modificadas Número de linhas retornadas ao cliente por essa consulta.
% concluído Percentual de trabalho concluído, se a consulta informar o progresso.
Memória de consulta concedida O número de páginas alocadas para a execução da solicitação.
Ação Contém um link para encerrar uma sessão.

A tela é atualizada automaticamente a cada 60 segundos.

Use o Opções de exibição de conteúdo... menu vertical para filtrar as colunas que você quer mostrar.

Encerrar uma sessão

Para encerrar uma sessão ou transação de longa duração, use o Cloud SQL Enterprise Plus e ative o Query Insights para o Cloud SQL Enterprise Plus.

As operações de longa duração podem levar mais tempo para serem encerradas.

Para encerrar uma consulta ou transação, siga estas etapas:

  1. Na tabela Transação em execução há mais tempo, selecione uma consulta.
  2. Na coluna Ação, clique em Encerrar sessão.
  3. Na janela Encerrar sessão, clique em Confirmar.

Consultas ativas bloqueadas

Se uma consulta ativa específica estiver bloqueada ou em execução por muito mais tempo do que o esperado, ela poderá bloquear outras consultas dependentes.

O Cloud SQL oferece a opção de encerrar consultas ativas específicas de longa duração ou bloqueadas.

Ativar a análise de consultas ativas bloqueadas

Por padrão, Google Cloud o console não mostra quais consultas ativas estão bloqueadas.

Para analisar consultas ativas bloqueadas, os seguintes requisitos se aplicam:

Para ativar a análise de consultas ativas bloqueadas, faça o seguinte:

Console

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

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome dela.
  3. Clique em Editar.
  4. Expanda a seção Query Insights.
  5. Selecione Ativar o Query Insights e Ativar recursos do Enterprise Plus. As duas configurações são obrigatórias.
  6. Selecione Análise de consulta bloqueada.
  7. Clique em Salvar.

Identificar e encerrar uma consulta ativa bloqueada

As etapas a seguir mostram como identificar e encerrar uma consulta ativa específica que pode estar bloqueando outras consultas.

Console

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

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. No menu de navegação do SQL, clique em Query Insights.
  4. Clique na guia Consultas ativas.

    Se você ainda não tiver consultas ativas em execução, navegue até o Cloud SQL Studio e execute as consultas que você quer investigar.

  5. Navegue até a seção Transações em execução há mais tempo. É possível conferir até 50 das consultas ativas de execução mais longa em cada categoria.

    Cada entrada exibida tem detalhes de consulta ativa exibidos, incluindo o seguinte:

    • ID da sessão: o ID da sessão da consulta. Clique em expandir para visualizar a entrada. Você pode ver um destes dois ícones:
      • Ícone de ampulheta: indica que a consulta está aguardando a conclusão de outra consulta. Se um número for incluído ao lado do ícone, ele indicará quantas consultas dependentes estão aguardando a conclusão dessa consulta.
      • Ícone de símbolo de bloco: indica que a consulta não pode ser concluída e pode estar bloqueando outras consultas.
    • Consulta: texto da consulta SQL.
    • Estado da sessão: o estado da sessão.
    • Duração da consulta (segundos): por quanto tempo a consulta está em execução.
    • Tempo de CPU(ms): o tempo de CPU em milissegundos usado pela solicitação.
    • Tipo de evento de espera: o tipo de evento de espera, se a solicitação for bloqueada para execução de consulta.
    • Recurso de espera: o recurso para o qual a solicitação está aguardando no momento, se a solicitação for bloqueada para execução de consulta.
    • Duração de espera da transação (segundos): a duração da espera atual, se a sessão estiver bloqueada.
    • Ação: ações possíveis a serem tomadas, como Encerrar sessão.

    Clique para expandir o ID da sessão que você quer investigar. É possível expandir as sessões subjacentes até três níveis de profundidade na árvore de investigação.

  6. Identifique a consulta específica que está bloqueada e clique em Encerrar sessão. Depois de encerrar a sessão, você pode navegar até Cloud SQL Studio para executar as consultas ativas novamente.

Ver detalhes de sessões inativas de bloqueio

A guia Consultas ativas mostra as sessões que estão processando uma solicitação. As sessões no estado SLEEPING são excluídas dessa visualização.

Para visualizar o último comando executado para uma sessão inativa, use o seguinte script:

SELECT c.session_id, st.text,s.login_name, s.open_transaction_count, s.host_name, s.program_name
FROM sys.dm_exec_connections AS c JOIN sys.dm_exec_sessions AS S ON c.session_id=s.session_id
CROSS APPLY sys.dm_exec_sql_text(c.most_recent_sql_handle) AS st
WHERE s.session_id=BLOCKING_SESSION_ID

Substitua BLOCKING_SESSION_ID pelo ID da sessão que está causando o bloqueio.

Para mais informações que ajudem a solucionar problemas e resolver bloqueios, consulte os seguintes recursos:

A seguir