繁体   English   中英

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

[英]better way to process records, select and update lock

我的软件存在问题,有时会导致SQL Server锁定。

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

根据一些值和计算,记录将更新。

当更新记录时,该记录所在的页面已被SQL服务器锁定以供选择。 这将导致永远无法解决的锁定。

为了解决该问题,我们创建了第二个表,从中选择,在过程开始之前将主表复制到该表中,不会以这种方式选择要更新的表,并且不会显示任何锁定。

我正在寻找的是针对此问题的简单且更好的解决方案,因为对我来说,这就像是一种解决方法,我以错误的方式进行操作,并且确实希望改进处理过程。

尝试更改数据库上的事务隔离级别 这是链接

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM