处理记录,选择和更新锁定的更好方法

时间:2015-01-06 14:16:56

标签: java sql select locking

我的软件出现问题,有时会导致SQL服务器锁定。

这是由选择一组记录并开始处理它们的进程引起的。

根据某些值和计算,记录会更新。

当正在更新记录时,该记录所在的页面被SQL服务器锁定以进行选择。这会导致锁从不解决。

为了解决这个问题,我们创建了第二个表,我们从中选择,在进程启动之前将主表复制到其中,不会以这种方式选择更新的表,也不会出现锁。

我正在寻找的是这个问题的简单和更好的解决方案,因为对我而言,这就像是一种解决方法,我正在做错误的方式,并且真的想改进处理。

2 个答案:

答案 0 :(得分:0)

尝试更改数据库中的 TRANSACTION ISOLATION LEVEL 。这是link

答案 1 :(得分:0)

我猜你的默认隔离级别设置为可重复读取,这会导致select在返回的记录上设置共享锁,当并发请求进入时会发生死锁。要解决这个问题,你应该进行锁定选择(锁定记录)用X锁而不是S锁。)

相关问题