O desempenho dos seus aplicativos orientados a banco é muitas vezes dependente de que o seu software SQL Server, e abrandamentos ou o tempo limite pode ocorrer por uma série de razões . Hardware ou memória gargalos , bloqueou registros ou procedimentos problemáticos podem desempenhar um papel em problemas de desempenho do SQL. Ao solucionar a maioria dos problemas do SQL Server requer acesso de administrador de banco de dados e de conhecimento , localizando consultas de problemas e otimização de servidor e banco de dados vai evitar mais problemas no caminho. Causas
Porque os tempos de espera e os problemas de desempenho pode ser resultado de uma variedade de causas , você terá que desenvolver uma estratégia de solução de problemas sistemática , a fim de localizar e corrigir um problema. A Microsoft recomenda que você começar a testar usando o SQL Profiler , que registra as ações do seu servidor para que você possa isolar o problema. Para detalhes sobre como configurar o SQL Profiler para executar um rastreamento , consulte o link em Recursos. SQL Server 2012 também inclui uma interface de usuário para os eventos estendidos Profiler , que terá completamente o lugar do SQL Profiler em versões futuras.
Bloqueio
A maioria dos problemas de tempo limite ocorrer por causa dos registros bloqueados . O bloqueio ocorre quando uma conexão bloqueia um registro que outra conexão deve bloquear usando um tipo de bloqueio diferente. O bloqueio é na verdade um comportamento normal , mas pode causar lentidão quando consultas de execução lenta também estão bloqueadas, um índice está ausente ou em certas outras circunstâncias. Enquanto , por padrão, o servidor irá esperar indefinidamente para um registro bloqueado , os administradores costumam usar o " LOCK_TIMEOUT " configuração para evitar lentidão do servidor. Para determinar se o servidor está tendo problemas com o bloqueio , execute o seguinte procedimento armazenado quando o servidor está passando por carga típica :
exec sp_who
Olhe na saída para outros que 0 entradas no " , preto coluna " . Se eles existem , você pode usar a sua saída Profiler SQL a zero em consultas de execução lenta que podem estar causando o bloqueio .
Plano de Execução Bad
quando o servidor executa uma consulta , ele usa os dados disponíveis para otimizar a forma como ele executa a consulta. Ocasionalmente, o servidor suposição errada, resultando em um plano de otimização ruim. Se o plano ruim é carregado para a cache , ele pode executar uma e outra vez , retardando cada consulta significativamente ou o tempo limite. Usando os dados do SQL Profiler ou SQL Query Analyzer , você pode localizar consultas de execução lenta e ajustá-los para que sejam executadas mais rapidamente.
Sistema Gargalos
Sistema desempenho também pode afetar o desempenho do SQL Server e fazer com que os tempos de espera . Para determinar se o seu sistema está passando por problemas de carga , execute o Monitor de desempenho e procurar o uso da CPU maior do que o habitual ou pedidos I /O mais longos do que o usual . Tal como acontece com os registros bloqueados, combinando o aumento de carga com os dados do SQL Profiler irá ajudá-lo a zero em consultas , compilações ou outros procedimentos que tomam grandes quantidades de recursos . Se ajustar os procedimentos é impossível, você vai ter que melhorar a memória RAM do servidor, poder de processamento ou o desempenho do disco .