客户要求多台计算机共享一个SQL数据库,当同时访问一个表时会出现死锁问题,导致访问失败,该如何解决?

客户要求多台计算机共享一个SQL数据库,当同时访问一个表时会出现死锁问题,导致访问失败,该如何解决?,第1张

其实你在查询的时候后面加个nolock条件

比如:

select * from a where col001='0' nolock

就可以了。。。

多线程是很容易造成死锁,一般情况下死锁都是因为并发 *** 作引起的。我不懂JAVA,但死锁这个问题每种开发工具和数据库都会碰到.解决办法是:

1、程序方面优化算法(如有序资源分配法、银行算法等),在一个程序里,能不用多线程更新同一张数据库表 尽量不要用,如果要用,其避免死锁的算法就很复杂。

2、数据库方面设置等待超时时间

3、发生死锁后直接KILL掉数据库进程

导致

死锁

的主要原因是

SQL语句

里有for

update

导致。比如当你访问这个表时候

有人使用了for

update进行

数据修改

,那在你那里调试也好执行也好

都会导致无法返回结果

一直卡在那里。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6720439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存