1.问题现象
我们在系统上线的时候,功能测试这些都是好的,刚开始应用也是好的,但是突然有一天,某个功能就不行了,然后怎么排查也无法解决,但是重启数据库又可以解决这个问题,但是过了一段时间又会有这个情况。
2.问题分析
我们从开发的角度来查看这个问题,首先排查测试机的同样功能没有问题,但是正式系统有问题,然后调试模式下,没有发现这个问题,那么首先排查该功能代码问题。那么从配置和系统的角度去查看,同样的配置,一个好一个不好,排除配置问题,那么只剩一个系统问题,那么从现象上可以发现特殊点,貌似不是所有功能不行,只是和某张表有关的所有功能都不行,从数据库工具直接查也无法查询,那么从表的角度上来说什么情况会无法查询,那么只能有一种情况,表被锁了。
3.办法解决
数据库查询那些表被锁
SELECT request_session_id spid,OBJECT_NAME(resource_associated_entity_id)tableName
FROM sys.dm_tran_locks
WHERE resource_type='OBJECT '
杀死对应的程序
KILL 72
4.解决
通过计划任务查询死锁的表,如果同一张表一直呆在这个列表里面通过kill的程序杀死就可以了