26 de agosto de 2026 · 9 min de leitura
Toda vez que uma sessão do SQL Server não está usando CPU ativamente, ela está esperando por alguma coisa — disco, memória, outro lock, rede. O SQL Server registra o tempo total gasto em cada tipo de espera desde o último restart (ou reset manual) em sys.dm_os_wait_stats. Isso é o dado mais valioso pra entender por que o servidor está lento, porque mostra a causa agregada, não só o sintoma pontual.
SELECT TOP 15
wait_type, wait_time_ms, waiting_tasks_count,
wait_time_ms * 1.0 / NULLIF(waiting_tasks_count, 0) AS media_ms
FROM sys.dm_os_wait_stats
WHERE wait_type NOT IN ('SLEEP_TASK','BROKER_TASK_STOP','CLR_SEMAPHORE','LAZYWRITER_SLEEP','XE_TIMER_EVENT')
ORDER BY wait_time_ms DESC;A lista de exclusão importa: boa parte dos wait types com maior tempo acumulado são internos do SQL Server (threads dormindo esperando trabalho) e não indicam problema nenhum. Filtrar esses de saída é o primeiro passo pra não perseguir fantasma.
O número absoluto isolado não diz muito — um servidor rodando há 60 dias acumula muito mais wait_time_ms que um que reiniciou ontem. O que importa é a proporção entre os tipos (qual domina o total) e a tendência ao longo do tempo, não o valor absoluto de um snapshot único.
O codeDB acompanha os wait stats de cada instância ao longo do tempo automaticamente, então dá pra ver a tendência (crescendo, estável, pico isolado) sem precisar guardar snapshot manual toda vez que alguém pergunta "isso é normal?".
Artigos relacionados
30 dias grátis para monitorar isso automaticamente no seu próprio ambiente.
Começar gratuitamenteMonitoramento inteligente de SQL Server com agente local seguro e diagnósticos em tempo real.
© 2026 codeDB. Todos os direitos reservados.
Powered by codeDB
codeDB Informática Ltda — CNPJ 18.953.756/0001-10 — Florianópolis/SC