EMRQDATA / DOCUMENTAÇÃO
Performance Triage Guide.
Coleta, leitura e limitações das principais fontes de diagnóstico de performance SQL Server.
Wait statistics
- Coletar em duas ou mais amostras separadas durante o período do problema e comparar deltas, se possível.
- Excluir waits de background/idle exige lista atualizada e contexto da versão; não remova categorias indiscriminadamente.
- PAGEIOLATCH pode indicar espera por leitura física; WRITELOG pode apontar latência de flush de log; LCK pode indicar bloqueio; SOS_SCHEDULER_YIELD pode sugerir pressão de CPU. Cada hipótese precisa ser confirmada por métricas complementares.
- ASYNC_NETWORK_IO pode estar associado ao consumo lento do cliente ou transferência de grandes resultados, não necessariamente à rede do servidor.
Bloqueios e requisições
- Capture durante o incidente. blocking_session_id identifica o bloqueador imediato, não necessariamente a raiz da cadeia.
- Investigue a sessão raiz, transação aberta, SQL em execução, aplicação, host e login antes de considerar qualquer KILL.
- Uma sessão sleeping pode manter transação aberta. Correlacione com DBCC OPENTRAN e DMVs de transação, quando apropriado.
- CPU time e elapsed time são métricas diferentes. Uma consulta pode esperar muito sem consumir CPU.
Consultas em cache
- sys.dm_exec_query_stats mantém agregados enquanto o plano permanece em cache; reinício, eviction e recompilação alteram a amostra.
- Ordenar por CPU total destaca consumo acumulado; CPU médio ajuda a encontrar custo por execução; reads totais e médios apontam candidatos para análise de I/O.
- Use Query Store para histórico persistente, regressão de plano e comparação por período.
- Revise plano real, parâmetros, cardinalidade, estatísticas, índices e padrão de chamadas antes de sugerir mudanças.
Segurança operacional
- As permissões variam por versão. Em versões recentes, algumas DMVs requerem VIEW SERVER PERFORMANCE STATE; versões anteriores podem usar VIEW SERVER STATE. Verifique a documentação para cada DMV e versão.
- As consultas são somente leitura e podem retornar SQL text e nomes de bancos/hosts/logins. Trate os CSVs como informação operacional sensível.
- Não execute KILL, alterações de configuração, índices ou hints apenas com base neste relatório.
- Compare com baseline, monitoramento de CPU, memória, I/O, storage, rede e Query Store.
Referências: sys.dm_os_wait_stats, sys.dm_exec_requests, sys.dm_exec_query_stats.