网站的操作导致数据表形成死锁,求教解决方案!

时间:2022-09-21 20:25:29
现在情况是这样的:我这边做了一个游戏的管理后台,主要是针对数据的一些操作,因为和游戏端用的一套数据库,可能游戏端那边有20个请求在请求某一个表,可能已经达到极限,之后网站又对这张表进行数据操作,这样会导致数据表死锁。
从而游戏端和网站后台都当掉了。
所以我在想,有没有什么办法能查找某张表有多少个连接。如果连接数在极限,那么我可以等待其处理完毕在去请求这个表。
请大佬们指教下。
PS:.NET 开发的后台

4 个解决方案

#1


死锁的原因应该不是20个链接极限造成的,应该是对数据处理请求有问题,比如事务未释放等,先再找出死锁原因的吧

#2


引用 1 楼 sinat_28984567 的回复:
死锁的原因应该不是20个链接极限造成的,应该是对数据处理请求有问题,比如事务未释放等,先再找出死锁原因的吧

游戏端那边说用异步,队列之内的。然后说操作网站的时候导致死锁了,其实我很BS他,但是非得让我来解决这个,我现在能想到的就是 所有的网站SQL语句前面加SET LOCK_TIMEOUT 1800,SELECT 加 with(nolock) 其他我没想到

#3


引用 2 楼 peng2739956 的回复:
Quote: 引用 1 楼 sinat_28984567 的回复:

死锁的原因应该不是20个链接极限造成的,应该是对数据处理请求有问题,比如事务未释放等,先再找出死锁原因的吧

游戏端那边说用异步,队列之内的。然后说操作网站的时候导致死锁了,其实我很BS他,但是非得让我来解决这个,我现在能想到的就是 所有的网站SQL语句前面加SET LOCK_TIMEOUT 1800,SELECT 加 with(nolock) 其他我没想到

现在能确认是那张表死锁了吗?

#4


你说的 限定锁时间, 还有加 with(nolock) 肯定是有效的。
不过, 目前你最好是先确定到底哪些情况造成了死锁:  https://blog.csdn.net/yenange/article/details/73883915

#1


死锁的原因应该不是20个链接极限造成的,应该是对数据处理请求有问题,比如事务未释放等,先再找出死锁原因的吧

#2


引用 1 楼 sinat_28984567 的回复:
死锁的原因应该不是20个链接极限造成的,应该是对数据处理请求有问题,比如事务未释放等,先再找出死锁原因的吧

游戏端那边说用异步,队列之内的。然后说操作网站的时候导致死锁了,其实我很BS他,但是非得让我来解决这个,我现在能想到的就是 所有的网站SQL语句前面加SET LOCK_TIMEOUT 1800,SELECT 加 with(nolock) 其他我没想到

#3


引用 2 楼 peng2739956 的回复:
Quote: 引用 1 楼 sinat_28984567 的回复:

死锁的原因应该不是20个链接极限造成的,应该是对数据处理请求有问题,比如事务未释放等,先再找出死锁原因的吧

游戏端那边说用异步,队列之内的。然后说操作网站的时候导致死锁了,其实我很BS他,但是非得让我来解决这个,我现在能想到的就是 所有的网站SQL语句前面加SET LOCK_TIMEOUT 1800,SELECT 加 with(nolock) 其他我没想到

现在能确认是那张表死锁了吗?

#4


你说的 限定锁时间, 还有加 with(nolock) 肯定是有效的。
不过, 目前你最好是先确定到底哪些情况造成了死锁:  https://blog.csdn.net/yenange/article/details/73883915