Sqlserver表被锁解决办法,表无法被查询

表被锁解决办法

  • 1.问题现象
  • 2.问题分析
  • 3.办法解决
  • 4.解决

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的程序杀死就可以了

你可能感兴趣的:(sql,sql)