Quando você começa a solucionar um impasse do SQL Server 2005/2008 e como? O alerta é ativado no SSMS por meio do alerta de condição de desempenho do SQL Server, objetos->SQLServer:Locks, Counter->Lock Waits/Seg, Instance:_Total, alerta se o contador: subir acima do valor 3. Essa é uma maneira proativa de monitorá-lo? Qual é o valor aceitável? Eu apreciaria muito sua ajuda. Obrigada!!!
relate perguntas
-
SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado
-
Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?
-
Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Como determinar se um Índice é necessário ou necessário
Você pode usar as notificações de eventos para ser notificado sempre que ocorrer um impasse no servidor:
Ver:
Links adicionais:
A primeira coisa a fazer é olhar para o gráfico de deadlock e ver exatamente o que está acontecendo. Em seguida, você pode considerar suas opções, que geralmente se resumem a a) modificar o aplicativo para padronizar uma ordem de bloqueio de objetos (por exemplo, se possível, dada a lógica do aplicativo, faça uma convenção com seus desenvolvedores para sempre bloquear tabelas em ordem alfabética) ou b ) veja se você realmente está operando no nível de isolamento adequado em cada transação.
Eu iria com o rastreamento automático do lado do servidor de 2 problemas principais:
consultas longas (você estabelece uma duração longa para o seu ambiente)
deadlocks - verifique o gráfico de Deadlock e Lock:Deadlock chain
Você obterá arquivos de rastreamento todos os dias e poderá monitorar a ação - veja se algum evento agendado está causando problemas. Você pode ver mais detalhes sobre a criação de perfil de produção nesta pergunta: Usando o SQL Profiler em um banco de dados que está em produção .
Tente definir traceflags, conforme descrito neste artigo online do livro: http://msdn.microsoft.com/en-us/library/ms178104%28SQL.90%29.aspx
O System Center Operations Manager (SCOM) com o SQL Server Management Pack pode alertar sobre bloqueios se você habilitar o log para a mensagem 1205. Você pode habilitá-lo com a seguinte consulta SQL:
EXEC sp_altermessage 1205, 'WITH_LOG', 'true'
.Além disso, veja minha resposta para "Por que o objectname e o indexname não são preenchidos no gráfico de deadlock?" para um script do PowerShell que escrevi que extrairá informações de impasse do buffer de eventos e gravará os gráficos de impasse como arquivos xdl que podem ser abertos no SQL Management Studio 2012 ou superior ou visualizados no bloco de notas para ver mais detalhes.