Tenho lutado um pouco com a solução de problemas de desempenho, incluindo linha de base e solução de problemas de desempenho do SQL.
Alguém poderia ajudar com isso ou me indicar onde posso obter informações úteis sobre esse tópico?
Tenho lutado um pouco com a solução de problemas de desempenho, incluindo linha de base e solução de problemas de desempenho do SQL.
Alguém poderia ajudar com isso ou me indicar onde posso obter informações úteis sobre esse tópico?
Aqui estão alguns bons artigos com alguns exemplos práticos que você pode encontrar aqui:
Como detectar problemas de desempenho do SQL Server usando linhas de base – Parte 1 – Introdução
Como detectar problemas de desempenho do SQL Server usando linhas de base – Parte 2 – Coletando métricas e relatórios
Como detectar problemas de desempenho do SQL Server usando linhas de base – Parte 3
Embora a Parte 1 forneça algum conhecimento básico sobre o que é a linha de base, na Parte 2 você pode encontrar informações sobre como fazer isso sozinho usando o método "homem pobre"
A Parte 3 fornece alguns exemplos de como você pode estabelecer linhas de base e como usar linhas de base na solução de alguns problemas por meio do ApexSQL Monitor
Escrevi uma série no SQLServerCentral sobre linhas de base que podem ser do seu interesse:
http://www.sqlservercentral.com/Authors/Articles/Erin_Stellato/351331/
E, como Shawn gentilmente mencionou, também tenho um curso Pluralsight. Se você tiver mais perguntas, sinta-se à vontade para entrar em contato comigo (erin at sqlskills dot com).
erin
Resolução de problemas de desempenho
É tudo sobre as consultas. Você precisa de apenas três bits de informação sobre suas consultas: CPU, duração e leituras.
A CPU deve ser aproximadamente igual a Duration ou C = D
CPU * 100 deve ser aproximadamente igual a Reads , ou *C*100 = R*
Se C < D, então temos um Garçom
Se C = D, mas C*100 > R, então temos Computação
Se C = D e C*100 = R, então temos um Runner
Waiter significa que estamos esperando por algo: E/S, bloqueio, travas, CPU.
Computação significa que estamos fazendo algo diferente de leituras: gargalo da CPU, spinlock, compilação de consulta, UDF/função - computação, cálculo, SQLCLR/XP, código do SQL Server
Runner não significa nada sem uma linha de base. Você teria que saber que a consulta normalmente leva menos tempo para ser executada: estatísticas desatualizadas, índices ausentes, consulta mal projetada, plano abaixo do ideal, detecção de parâmetro, tempo limite do otimizador
Dados a coletar
Waiter : estatísticas de espera, query_plan, perfmon, profiler, script bloqueador/script per_stats, DMVs, Xevent
Computação : estatísticas de spinlock, plano de consulta, criador de perfil, tempo de definição de estatísticas, IO de estatísticas, plano de consulta XML, sinalizadores de rastreamento, Xperf, Kernrate, F1 Visual Studio, texto de consulta, perfmon
Runner : plano de consulta, esquema, texto da consulta, informações estatísticas, informações sobre índices ausentes, fragmentação do índice
Existem muitos DMVs, software de terceiros e scripts que ajudarão você a coletar esses dados.