5 métricas de banco de dados que todo SRE deveria acompanhar

novembro 14, 2025 | por dbsnoop

5 métricas de banco de dados que todo SRE deveria acompanhar

Como Engenheiro de Confiabilidade de Site (SRE), sua missão é garantir a estabilidade e a performance de sistemas complexos em escala. Seu arsenal de ferramentas provavelmente inclui dashboards robustos do Grafana, alertas do Prometheus e logs detalhados, todos focados em manter os SLOs (Service Level Objectives) intactos.

Quando se trata do banco de dados, a camada mais crítica e muitas vezes a mais opaca da sua stack, a tendência é se apoiar nas métricas de “caixa preta” fornecidas pela sua plataforma de nuvem: CPUUtilization, FreeableMemory, Read/Write IOPS. Essas métricas são importantes, mas perigosamente insuficientes.

Elas descrevem a carga sobre a infraestrutura, mas não revelam nada sobre a natureza do trabalho que está causando essa carga. Confiar apenas nelas é como pilotar um avião olhando apenas para o medidor de combustível; você sabe se está gastando muito, mas não tem ideia se o motor está operando de forma eficiente ou se está prestes a pegar fogo. Para um SRE, que vive da disciplina de reduzir o tempo de resolução de incidentes (MTTR), essa falta de contexto é um passivo crítico.

Para evoluir de um simples monitoramento de sintomas para um diagnóstico real de causa raiz, é preciso ir além do óbvio. Este guia apresenta cinco métricas de banco de dados, focadas no workload, que todo SRE deveria acompanhar para obter uma visão profunda, acionável e verdadeiramente confiável da saúde de seus sistemas de dados.

1. DB Time (ou Database Load)

Se você pudesse escolher apenas uma métrica para definir a carga total em seu banco de dados, seria esta. DB Time, também conhecida como “Average Active Sessions”, é a medida mais precisa da atividade total do seu banco de dados.

  • O que é? DB Time é a soma acumulada de tempo que todas as sessões do banco de dados passaram ativas (seja trabalhando na CPU ou esperando por um recurso como disco, rede ou um lock) durante um determinado intervalo. Se, em um intervalo de 60 segundos, o DB Time total foi de 120 segundos, isso significa que, em média, duas sessões estavam ativas a cada segundo.
  • Por que importa? Esta métrica é o seu “indicador de carga” universal. A capacidade máxima do seu banco de dados é ditada pelo número de núcleos de CPU. Um servidor com 8 vCPUs pode, no máximo, suportar 8 segundos de trabalho de CPU por segundo de tempo real. Se o seu DB Time consistentemente excede o número de vCPUs, significa que as sessões estão sendo enfileiradas e esperando por tempo de CPU, resultando em um aumento direto da latência para todas as queries. Ele captura tanto o trabalho produtivo (CPU) quanto o improdutivo (espera), fornecendo uma visão holística da carga.
  • Como supera as métricas tradicionais? A CPUUtilization apenas informa o quão ocupado está o processador. Ela não diz nada sobre as sessões que estão paradas, esperando por I/O ou por um lock. Um sistema pode ter uma CPU baixa (ex: 20%), mas um DB Time altíssimo, indicando um problema severo de contenção de locks que está paralisando a aplicação. O DB Time captura ambos os cenários. Uma plataforma como a dbsnOOp centraliza o DB Time, correlacionando-o com a CPU e dividindo-o pelas queries que mais contribuem para ele, permitindo que um SRE veja não apenas que a carga está alta, mas qual query é a responsável por essa carga.

2. Wait Events (ou Wait Statistics)

Se o DB Time te diz quanto o banco de dados está ocupado, os Wait Events te dizem com o quê ele está ocupado. Esta é a métrica de diagnóstico mais poderosa para entender a natureza de um gargalo de performance.

  • O que são? Quando uma sessão de banco de dados não pode prosseguir porque precisa de um recurso que não está disponível no momento (um bloco de dados do disco, um lock mantido por outra sessão, etc.), ela entra em um estado de espera e registra um “Wait Event”. Os bancos de dados modernos rastreiam centenas de tipos de eventos de espera.
  • Por que importam? A análise agregada dos eventos de espera revela a personalidade do seu gargalo.
    • Esperas de I/O (ex: io:data_file_read, pageiolatch_sh): Se estes estão no topo, seu sistema está “preso ao disco”. As queries estão exigindo mais dados do que pode caber na memória (RAM), forçando leituras lentas do armazenamento. A causa raiz pode ser um índice ausente, queries ineficientes ou memória insuficiente.
    • Esperas de Lock (ex: LCK_M_X, enq: TX – row lock contention): Se estes dominam, seu problema é de contenção na aplicação. Múltiplas transações estão competindo pelas mesmas linhas, causando bloqueios e paralisando o processamento. A causa pode ser queries de UPDATE lentas ou um design de transação problemático.
    • Esperas de CPU (ex: CPU ou SOS_SCHEDULER_YIELD): Se a principal “espera” é por tempo de CPU, significa que seu gargalo é computacional. As queries são complexas e exigem muito processamento. A solução é a otimização da query ou, em último caso, um upgrade de hardware.
  • Como supera as métricas tradicionais? Um SRE olhando para um dashboard de I/O pode ver um pico de ReadIOPS, mas não tem ideia se esse pico é saudável (muitas leituras pequenas e eficientes) ou problemático (uma única query fazendo um scan massivo). A análise de Wait Events fornece esse contexto. A dbsnOOp não apenas mostra os principais eventos de espera, mas os conecta diretamente às queries que os estão causando, permitindo que o SRE veja que 90% das esperas de I/O estão sendo geradas pela query X, fornecendo um caminho direto para a resolução.

3. Buffer Cache Hit Ratio

Esta métrica mede a eficiência com que o seu banco de dados está utilizando seu recurso mais precioso e rápido: a memória RAM.

  • O que é? O Buffer Cache (ou Buffer Pool) é uma área da RAM onde o banco de dados armazena as páginas de dados que foram lidas recentemente do disco. Quando uma query precisa de um dado, ela primeiro procura no Buffer Cache. Se o dado está lá (um “cache hit”), a operação é extremamente rápida. Se não está (um “cache miss”), o banco precisa fazer uma leitura física lenta do disco. A Buffer Cache Hit Ratio é a porcentagem de vezes que os dados foram encontrados na memória versus o total de requisições.
  • Por que importa? Uma alta taxa de acerto no cache (geralmente acima de 99% para sistemas OLTP) é um sinal de um sistema saudável e performático. Uma taxa de acerto consistentemente baixa ou em queda é um alerta vermelho. Significa que o “working set” (o conjunto de dados ativamente usado pela sua aplicação) não cabe na memória alocada para o banco. Isso pode ser causado por:
    1. Memória Insuficiente: A instância é simplesmente pequena demais para a carga de trabalho.
    2. Queries Ineficientes: Full Table Scans massivos podem “poluir” o cache, lendo milhões de linhas irrelevantes e forçando a saída de dados úteis e “quentes”, prejudicando a performance de todas as outras queries.
  • Como supera as métricas tradicionais? A métrica FreeableMemory apenas informa quanta RAM o sistema operacional pensa que está livre. Ela não diz nada sobre a qualidade do uso da memória pelo banco de dados. Um servidor pode ter pouca memória livre (o que é bom, pois o banco deve usar o máximo de RAM possível para o cache), mas uma alta taxa de acerto no cache. Inversamente, pode ter memória livre, mas uma baixa taxa de acerto. A Buffer Cache Hit Ratio é a verdadeira medida da eficiência da memória. A dbsnOOp monitora essa métrica ao longo do tempo e a correlaciona com as queries, permitindo que o SRE determine se uma queda na taxa de acerto foi causada por uma mudança no padrão de workload ou pela introdução de uma nova query ineficiente.

4. Index Usage (Scans vs. Seeks) e Unused Indexes

Esta não é uma única métrica, mas uma categoria de análise focada na saúde da sua estratégia de indexação, o pilar da performance de leitura.

  • O que é? Os bancos de dados mantêm estatísticas sobre como os índices estão sendo usados. As duas operações mais importantes são:
    • Index Seek: Uma operação altamente eficiente, onde o banco de dados usa a estrutura de árvore do índice para navegar diretamente para as linhas exatas de que precisa.
    • Index Scan (ou Full Index Scan): Uma operação menos eficiente, onde o banco lê o índice inteiro do início ao fim. É mais rápido que um Table Scan, mas ainda pode ser um sinal de uma query mal formulada ou de um índice inadequado.
      Por outro lado, o banco também rastreia quais índices nunca são usados.
  • Por que importa?
    • Scans vs. Seeks: Um alto número de Index Scans em relação a Seeks em um índice crítico indica um problema. A query pode estar usando uma função na coluna indexada ou um LIKE ‘%texto’, o que impede o seek. Otimizar a query para permitir um seek pode resultar em ganhos de performance de ordens de magnitude.
    • Unused Indexes: Este é um problema silencioso, mas caro. Cada índice em uma tabela adiciona uma sobrecarga a todas as operações de escrita (INSERT, UPDATE, DELETE). Um índice que nunca é usado para leituras é puro “peso morto”: ele não oferece nenhum benefício de performance, mas desacelera todas as suas escritas e consome espaço em disco.
  • Como supera as métricas tradicionais? Não há uma métrica de infraestrutura tradicional que forneça essa visão. Esta é uma análise puramente interna do banco de dados. Um SRE pode passar anos sem perceber que 50% dos índices em uma tabela crítica são inúteis e estão ativamente prejudicando a performance de INSERTs. Ferramentas como a dbsnOOp automatizam essa análise. Elas não apenas identificam as queries que estão causando scans ineficientes, mas também fornecem relatórios claros dos índices não utilizados, permitindo uma “limpeza” segura que pode melhorar drasticamente a performance de escrita.

5. Transaction Log Generation / Throughput

Esta métrica é frequentemente negligenciada em ambientes que não são de alta transação, mas é um indicador vital da “taxa de mudança” dos seus dados e um prenúncio de problemas.

  • O que é? O Transaction Log (ou Write-Ahead Log – WAL) é um componente crítico onde o banco de dados registra todas as modificações de dados antes de serem escritas nos arquivos de dados principais. A taxa de geração de log mede quantos megabytes ou gigabytes de log estão sendo escritos por segundo ou minuto.
  • Por que importa?
    1. Indicador de Carga de Escrita: É a medida mais precisa da intensidade do seu workload de escrita.
    2. Detecção de Operações Ineficientes: Uma operação de UPDATE ou DELETE em lote que é escrita de forma ineficiente (ex: linha por linha em um loop, em vez de uma única instrução baseada em conjunto) pode causar uma tempestade de geração de log. Um pico repentino e inesperado nesta métrica é um sinal claro de que um novo processo ou uma query ineficiente começou a modificar dados em massa.
    3. Impacto na Replicação e Alta Disponibilidade: Em sistemas com réplicas de leitura ou configurações de alta disponibilidade, o log de transações é o que é enviado para as réplicas. Uma taxa de geração de log excessiva pode saturar a rede e causar “replication lag”, onde as réplicas ficam perigosamente desatualizadas em relação ao primário.
  • Como supera as métricas tradicionais? A métrica WriteIOPS no disco mede as operações de baixo nível, mas não diferencia entre as escritas eficientes do log e outras escritas. A taxa de geração de log é específica para a mudança de dados. Ela fornece um insight direto sobre o impacto das suas operações de escrita. A dbsnOOp monitora a taxa de geração de log e, quando um pico ocorre, consegue correlacioná-lo com as queries de modificação (INSERT, UPDATE, DELETE) que estavam ativas naquele momento, apontando para o SRE exatamente qual processo causou a “tempestade de log”.

De SRE a DBRE

A disciplina de SRE é construída sobre a base de dados e medições precisas. Ao expandir seu foco das métricas de infraestrutura para estas cinco métricas focadas no workload, você evolui sua capacidade de análise. Você deixa de ser apenas um Engenheiro de Confiabilidade de Site e começa a se tornar um Engenheiro de Confiabilidade de Banco de Dados (DBRE). Você para de perguntar “o servidor está lento?” e começa a perguntar “o que o servidor está esperando?”.

Você para de tratar os sintomas com mais hardware e começa a curar a doença otimizando o software. Essa mudança de perspectiva, habilitada por uma plataforma de observabilidade que fornece o contexto necessário, é o que transforma a gestão de incidentes de um exercício de apagar incêndios para uma disciplina de engenharia de precisão.

Quer ir além da CPU e obter uma visão real da performance do seu banco de dados? Marque uma reunião com nosso especialista ou assista a uma demonstração na prática!

Para agendar uma conversa com um de nossos especialistas, acesse nosso site. Se preferir ver a ferramenta em ação, assista a uma demonstração gratuita. Mantenha-se atualizado com nossas dicas e novidades seguindo nosso canal no YouTube e nossa página no LinkedIn.

Agende uma demonstração aqui

Saiba mais sobre o dbsnOOp!

Visite nosso canal no youtube e aprenda sobre a plataforma e veja tutoriais

Aprenda sobre monitoramento de banco de dados com ferramentas avançadas aqui.

Leitura Recomendada

Compartilhar:

Leia mais

IMPULSIONE SUA OPERAÇÃO COM UM DBA AUTÔNOMO

SEM INSTALAÇÃO – 100% SAAS 

Complete o formulário abaixo para prosseguir

*Obrigatórias