日期:2014-05-18  浏览次数:20495 次

怎么SQL 2008比2000更容易死锁?
昨天把数据库迁移到新服务器上了,装上windows sever 2008+SQL2008,原来是sever 2003+SQL 2000,服务器硬件配置也提升了不少,可是问题却来了,原来执行没有问题的,现在一执行就发生死锁,有些语句根本就执行不过去,就一个普通的delete ,update 操作都会发生死锁,执行不过去,这是怎么回事啊,请高手指点一下,谢谢!!!

------解决方案--------------------
探讨
昨天把数据库迁移到新服务器上了,装上windows sever 2008+SQL2008,原来是sever 2003+SQL 2000,服务器硬件配置也提升了不少,可是问题却来了,原来执行没有问题的,现在一执行就发生死锁,有些语句根本就执行不过去,就一个普通的delete ,update 操作都会发生死锁,执行不过去,这是怎么回事啊,请高手指点一下,谢谢!!!

------解决方案--------------------
顶1楼,"死锁"很冤枉的,总是背黑锅!

查一下进程等待的原因, 阻塞是因为有等待! 

see waittype, understand?
------解决方案--------------------
探讨
昨天把数据库迁移到新服务器上了,装上windows sever 2008+SQL2008,原来是sever 2003+SQL 2000,服务器硬件配置也提升了不少,可是问题却来了,原来执行没有问题的,现在一执行就发生死锁,有些语句根本就执行不过去,就一个普通的delete ,update 操作都会发生死锁,执行不过去,这是怎么回事啊,请高手指点一下,谢谢!!!

------解决方案--------------------
--检索死锁进程
select spid, blocked, loginame, last_batch, status, cmd, hostname, program_name 
from sysprocesses 
where spid in
( select blocked from sysprocesses where blocked <> 0 ) or (blocked <>0)