Depois de migrar os dados do SQL Server 2000 para o SQL Server 2008, quando estou fazendo qualquer transação na tabela que descobre mais linhas no banco de dados, isso me dá um erro.
Transaction (Process ID 59) was deadlocked on lock resources with
another process and has been chosen as the deadlock victim.
Rerun the transaction.
Existem 3 gatilhos na tabela (Inserir,Atualizar,Excluir). Como posso resolver este problema?
Depois de atualizar para o SQL Server 2008, você executou o seguinte?
O blob de estatísticas mudou significativamente de 2000 para o SQL Server 2008 e as etapas acima são muito importantes após a atualização. Já vi muitas pessoas terem problemas de desempenho, mas não impasses. Eu tentaria fazer todos os itens acima, se você ainda não o fez, e tentaria reproduzir o problema depois.
Dito isso, quais são os resultados de SELECT @@VERSION na caixa de 2008? Você está atualizando uma linha ou várias linhas?
Suspeito que isso possa estar relacionado aos otimizadores nas diferentes versões que lidam com a escalação de bloqueio de maneira diferente. Você pode verificar os
Lock:Escalation
eventos?SE você executar o Profiler e registrar todos os gráficos de impasse, poderá descobrir exatamente em quais tabelas os impasses ocorrem, incluindo páginas. Isso deve ajudar a reduzi-lo.