Protocolo para resolução de lentidão no Banco de Dados (Equipe DBA)

Filtros


Tópicos

O que é

Após identificar lentidão no banco de dados por meio de instruções SQL, a equipe de Banco de Dados deve seguir um checklist de tarefas para solucionar o problema.

As instruções são úteis para monitorar e diagnosticar problemas de desempenho relacionados a consultas lentas, permitindo uma análise precisa e em tempo real do comportamento do banco de dados e ajudam a identificar e corrigir problemas que impactam a performance geral do sistema.

O checklist oferece uma abordagem prática e completa para diagnosticar e solucionar lentidão, envolvendo tanto ajustes na configuração do MySQL quanto no ambiente operacional. A execução cuidadosa dessas etapas permitirá melhorar a performance e garantir estabilidade no banco de dados.

A seguir, estão listadas as instruções SQL para diagnosticar a lentidão no banco de dados, acompanhadas de um checklist de tarefas essenciais para a resolução.

Esta documentação é destinada exclusivamente à equipe de Banco de Dados (DBA) e contém configurações e informações críticas que apenas eles devem acessar e alterar, pois impactam diretamente o funcionamento do banco. Qualquer erro nessas configurações pode impedir sua inicialização adequada. Portanto, membros de outras equipes não devem realizar modificações nas configurações mencionadas.

Ferramentas utilizadas

Para executar o protocolo, é necessário acessar a ferramenta SQLyog.

Como fazer

O protocolo para a resolução de lentidão no Banco de Dados é composto por duas etapas principais:

  1. Executar instruções no SQLyog: Inclui comandos específicos para análise e diagnóstico da performance do banco de dados.
  2. Realizar checklist de tarefas: Envolve ações corretivas baseadas nos resultados obtidos, garantindo a eficiência na solução do problema.

Veja abaixo os detalhes de cada etapa.

Executar instruções no SQLyog

Para identificar lentidão no banco de dados, acesse a ferramenta SQLyog e execute as seguintes instruções:

Instrução Descrição da Instrução
SHOW GLOBAL STATUS WHERE variable_name = ‘Slow_queries’; Verifica a quantidade de consultas registradas no servidor desde que ele foi iniciado.
SELECT COUNT(0) total_slow_query_dia FROM mysql.slow_log WHERE start_time >= CURRENT_DATE ORDER BY start_time; Verifica a quantidade de consultas registradas no dia.

Se o número total de consultas lentas no dia for maior que 200, pode-se considerar que há indícios de lentidão no banco de dados.
SHOW GLOBAL STATUS LIKE = ‘Slow_queries’; Verifica a quantidade de consultas lentas, ou seja, aquelas que levam mais de 5 segundos para serem concluídas.
Guia Visual 1. Instruções SQL

Esse monitoramento é essencial para a manutenção do desempenho do banco de dados e pode orientar ações resolutivas.

Realizar checklist de tarefas

Esta documentação é destinada exclusivamente à equipe de Banco de Dados (DBA) e contém configurações e informações críticas que apenas eles devem acessar e alterar, pois impactam diretamente o funcionamento do banco. Qualquer erro nessas configurações pode impedir sua inicialização adequada. Portanto, membros de outras equipes não devem realizar modificações nas configurações mencionadas.

Após ser diagnosticado a lentidão no banco de dados, realize o checklist de tarefas abaixo:

Checklist de Tarefas para solucionar lentidão no Banco de Dados
Revisar a configuração do arquivo my.cnf:

  • Verifique se os parâmetros estão otimizados com base nos recursos disponíveis no servidor (CPU, memória e disco).
  • Ajuste os parâmetros, como o innodb_buffer_pool_size.
  Analisar a quantidade de consultas lentas (Slow Queries)

  • Utilize novamente a instrução SHOW GLOBAL STATUS WHERE variable_name = ‘Slow_queries’;
  • Avalie se o crescimento das consultas lentas continua alto após os ajustes iniciais.
Monitorar e revisar o log de consultas lentas (slow_log)

  • Ative o log de consultas lentas, se necessário:
    SET GLOBAL slow_query_log = ‘ON’;
    SET GLOBAL long_query_time = 2; — Define o limite para registrar consultas que demoram mais de 2 segundos.
  • Analise quais consultas estão sendo registradas frequentemente.
Utilizar o EXPLAIN nas Consultas Identificadas

  • Execute o comando EXPLAIN nas consultas mais lentas para entender como o otimizador do MySQL está tratando cada instrução:
    EXPLAIN SELECT * FROM tabela WHERE campo = ‘valor’;
  • Avalie se as consultas podem ser otimizadas com índices ou reescritas mais eficientes.
Verificar e ajustar Índices

  • Avalie se os índices existentes são eficientes.
  • Crie novos índices, se necessário, para melhorar o desempenho de consultas recorrentes.
Executar ANALYZE nas Tabelas Principais

  • Garanta que as estatísticas de índices das tabelas estejam atualizadas para que o otimizador faça melhores escolhas:
    ANALYZE TABLE nome_da_tabela;
Verificar a PROCESSLIST

  • Use o comando abaixo para monitorar processos ativos e identificar consultas que estão travando ou consumindo muitos recursos:
    SHOW PROCESSLIST;
Analisar outros status do Banco

  • SHOW GLOBAL STATUS;
  • Verifique variáveis como Table_locks_waited e Innodb_row_lock_time_avg.
Verificar o status do sistema operacional

  • Monitore o consumo de I/O, rede e memória no servidor Linux:
    • top # Para ver o uso de CPU e memória
    • iostat -x 1 10 # Para monitorar I/O
    • vmstat 1 10 # Para visualizar a carga do sistema
  • Analise se há picos anômalos de consumo que possam estar impactando o banco.

 

Este artigo foi útil para você?
Pró
Não
Contra