SMART VISIONS Logo

Análise de Banco de Dados SQL Server

Parecer Técnico e Diagnóstico de Performance - SRVDATABASE1-PE

Introdução

Este relatório apresenta uma análise técnica detalhada do banco de dados SQL Server (SRVDATABASE1-PE), com foco em performance, saúde do sistema e correlação com métricas de infraestrutura. A análise integra dados de monitoramento diário e horário, fornecendo recomendações técnicas baseadas em evidências.

Período de Análise: 03/05/2026 (Diário e Hora em Hora)

Servidor Monitorado: SRVDATABASE1-PE (IP: 192.168.100.9)

Instância SQL Server: TFCAR4_PRD

Objetivo: Identificar problemas de performance, gargalos de banco de dados e fornecer recomendações de otimização integradas com análise de infraestrutura.

Configuração de Memória SQL Server

📊 Parâmetros de Memória Identificados

Max Server Memory (MB): 106.496 MB (~104 GB)

Utilização Atual: ~92% (aproximadamente 98 GB em uso)

Page Life Instance: 2.051 segundos

Análise: O SQL Server está configurado para usar até 104 GB de RAM, e está utilizando aproximadamente 92% dessa alocação. Isso é NORMAL e ESPERADO para um servidor de banco de dados em produção. O SQL Server utiliza essa memória para:

  • Buffer Pool (cache de páginas de dados)
  • Plan Cache (cache de planos de execução)
  • Memory Grants (alocação para queries)
  • Outras estruturas internas
✓ OBSERVAÇÃO IMPORTANTE: O SQL Server é projetado para usar toda a memória disponível alocada. A pressão de memória no servidor (92% de RAM total) esta sendo causada pelo SQL Server usar sua alocação máxima, deixando pouca memória livre para o sistema operacional. Isso é um problema. Aproveite melhor o SQL Server, e considere 128 GB de memória dedicada, deixando pelo menos 20GB de memória para o Sistema Operacional. Recomendo considerar 160 GB de memória no Servidor.

Métrica: Page Life Instance

🔍 O que é Page Life Instance?

Definição: Número de segundos que uma página permanece no Buffer Pool sem ser referenciada.

Valor Atual: 2.051 segundos (~34 minutos)

Interpretação:

  • Valor > 300 segundos: Indica Buffer Pool saudável (páginas permanecem em cache)
  • Valor < 300 segundos: Indica pressão de memória (páginas são removidas rapidamente)
  • Seu valor (2.051): EXCELENTE - Páginas permanecem em cache por mais de 34 minutos

Conclusão: O Buffer Pool está funcionando de forma SAUDÁVEL. As páginas permanecem em cache por tempo suficiente, indicando que a alocação de memória é adequada para a carga de trabalho atual.

Análise Comparativa: Diário vs. Hora em Hora

Relatório Diário: Fornece visão consolidada de 24 horas com histórico de performance.

Relatório Hora em Hora: Fornece visão detalhada das últimas horas com granularidade maior.

Seções Analisadas (Diário):

  • ✓ Informações da Instância SQL Server
  • ✓ Principais Parâmetros
  • ✓ Configuração dos Bancos de Dados
  • ✓ Tamanho e Crescimento dos Bancos
  • ✓ Conexões Ativas por Banco
  • ✓ Relação de Logins
  • ✓ Parâmetros de Memória
  • ✓ Status dos Backups
  • ✓ Erros Log SQL (últimos 10 dias)
  • ✓ Performance da Instância
  • ✓ Histórico de CPU e RAM (últimas 2 horas)

Seções Analisadas (Hora em Hora):

  • ✓ Tamanho e Crescimento dos Bancos (por Filegroup)
  • ✓ Conexões Ativas (Em Processamento)
  • ✓ Status dos Backups
  • ✓ Erros Log SQL (última hora)
  • ✓ Performance da Instância (última hora)
  • ✓ Visão Em Tempo Real (TOP 30)
  • ✓ Histórico de CPU (última hora)
  • ✓ Fila de Disco (I/O Pendente)
  • ✓ Eventos de Auto Growth
  • ✓ Top Atividade I/O por Arquivo
  • ✓ Latência por Datafiles
  • ✓ Principais Esperas (Waits)
  • ✓ Top Queries por CPU e Duração
  • ✓ Status dos Jobs

Problemas Identificados (Baseado em Hora em Hora)

🔴 Problema 1: Fragmentação de Índices

Severidade: CRÍTICA

Descrição: Índices fragmentados aumentam o tempo de execução de queries e causam mais I/O de disco.

Impacto: Lentidão nas consultas, aumento de I/O, consumo adicional de CPU

Recomendação: Executar REBUILD de índices com fragmentação > 30% e REORGANIZE para fragmentação entre 10-30%

🔴 Problema 2: Locks e Deadlocks

Severidade: CRÍTICA

Descrição: Presença de locks e deadlocks indica contenção de recursos.

Impacto: Falhas de transações, timeout de aplicações, degradação de performance

Recomendação: Revisar queries bloqueantes, considerar isolamento de transações, aumentar timeout de aplicações

🔴 Problema 3: Fila de Disco (I/O Pendente)

Severidade: CRÍTICA

Descrição: Fila de I/O pendente indica que o disco não consegue acompanhar a demanda.

Impacto: Lentidão em operações de leitura/escrita, aumento de latência

Recomendação: Investigar queries com alto I/O, considerar separação de discos (SO vs. Dados)

🟡 Problema 4: Top Queries por CPU

Descrição: Algumas queries estão consumindo CPU excessivamente. Recomenda-se análise de planos de execução e otimização.

🟡 Problema 5: Top Queries por Duração

Descrição: Queries de longa duração podem estar bloqueando outras transações. Recomenda-se timeout ou otimização.

Correlação com Infraestrutura de Servidor

📊 Análise Revisada: SQL Server vs. Infraestrutura

Situação Anterior (Interpretação Incorreta):

Memória do servidor em 92% foi interpretada como pressão excessiva no SQL Server. Porém, isso estava CORRETO - o SQL Server estava usando sua alocação máxima (106.496 MB), deixando pouca memória livre para o SO.

Situação Atual (Interpretação Corrigida):

  • SQL Server Memory (106.496 MB): Utilização de 92% é NORMAL e ESPERADO
  • Page Life Instance (2.051 seg): EXCELENTE - Buffer Pool saudável
  • RAM do Servidor (125 GB total): 92% em uso, deixando ~10 GB para SO
  • Problema Real: Pouca memória livre para o SO (~10 GB), não para o SQL Server

Impacto na Infraestrutura:

  • SO tem apenas ~10 GB de memória livre (8% do total)
  • Contention na partição C (SO) é exacerbada pela falta de memória livre
  • Fila de I/O pendente está correlacionada com pressão de memória do SO

Recomendações Revisadas (Ordem de Execução)

Prioridade Ação Impacto Esforço Timeline
1 - CRÍTICO Upgrade de RAM: 160 GB total + Configurar Max Server Memory para 128 GB Muito Alto Médio 1-2 semanas
2 - CRÍTICO Rebuild de Índices Fragmentados Alto Baixo 1-3 dias
3 - CRÍTICO Investigar Locks/Deadlocks Alto Médio 3-5 dias
4 - IMPORTANTE Otimizar Top Queries Médio Alto 1-2 semanas
5 - IMPORTANTE Separar Discos (SO vs. Dados) Médio Alto 2-4 semanas
6 - IMPORTANTE Upgrade de RAM (adicionar 32 GB) Médio Médio 1-2 semanas
7 - INFORMATIVO Agendar Manutenção Regular Médio Baixo Imediato

Conclusão Revisada

Diagnóstico Final: O banco de dados SQL Server está operacional e bem configurado. O Buffer Pool está saudável (Page Life Instance = 2.051 seg). O problema real está na infraestrutura do servidor, não no SQL Server.

Raiz do Problema: O servidor tem pouca memória livre para o sistema operacional (~10 GB de 125 GB). Isso causa contention na partição C (SO) e afeta a performance geral do sistema.

Ação Imediata (HOJE):

  • AUMENTAR Max Server Memory de 106.496 MB para 128.000 MB - Considerando o servidor com 160 GB de memória RAM, isso deixará ~30 GB livres para o SO, resolvendo a contention na partição C
  • Monitorar Page Life Instance após a mudança (deve permanecer > 300 seg)
  • Verificar se a fila de I/O pendente diminui

Próximos Passos (Curto Prazo - Paralelo ao Upgrade):

  • Rebuild de índices fragmentados (1-3 dias)
  • Investigar locks e deadlocks (3-5 dias)
  • Otimizar top queries (1-2 semanas)

Próximos Passos (Médio Prazo - Após Upgrade):

  • Separar discos (SO vs. Dados) para reduzir contention na partição C
  • Considerar SSD para dados de alta performance

Monitoramento Contínuo: Implementar alertas para:

  • Page Life Instance < 300 segundos (indica pressão de memória)
  • Memória do SO < 15% livre
  • Fila de I/O pendente > 10
  • Fragmentação de índices > 20%
  • Deadlocks > 5 por hora