SQL2000 数据库死锁问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 12:47:26
SQL服务器为SQL2000,ERP应用时平均每天都会出现一两次数据库锁死:企业管理器打不开,当然进程管理也不能打开,可以开查询分析器,以下为运行sp_who的结果,有时把所有状态为runnable的进程都kill掉数据库就行了,有时不行只能重启SQL服务,哪位大大帮忙看看遇到此情况如何解决,能查出是哪条进程引起的锁死呢?

附件EXCEL表格,已放置FTP服务器。
ftp://55154140den.gicp.net
二楼的晕死,就是不知道是哪个操作导致的死锁嘛。
一楼的,访问不了FTP吗?
三楼的,数据库没有阻塞

SQL死锁大部分情况下还是因为SQL语句导致的,所以你得调查一下经常是操作到哪一步的时候死锁的.其中最现概率最大的应该是触发器和存储过程之间了,所以你得检查一下看看这两张中哪些程序有BUG.这个不能靠别人,只能自己慢慢的去摸索,去探测..

还是通过查看系统表里找出阻塞者直接杀掉阻塞者吧。

select * from master.dbo.sysprocesses

blocked列大于0的,就是被其它进程阻塞了,数值就是进程号,就是sp_who的spid列,可以直接kill这个阻塞者,假设blocked值是55,则kill 55。

建议不要急于kill相关的阻塞进程,用dbcc inputbuffer(55)查看55号进程在执行什么操作,如果是程序编写有问题,最好修改。

下不来