[英]better way to process records, select and update lock
我的软件存在问题,有时会导致SQL Server锁定。
这是由选择一组记录并开始处理它们的过程引起的。
根据一些值和计算,记录将更新。
当更新记录时,该记录所在的页面已被SQL服务器锁定以供选择。 这将导致永远无法解决的锁定。
为了解决该问题,我们创建了第二个表,从中选择,在过程开始之前将主表复制到该表中,不会以这种方式选择要更新的表,并且不会显示任何锁定。
我正在寻找的是针对此问题的简单且更好的解决方案,因为对我来说,这就像是一种解决方法,我以错误的方式进行操作,并且确实希望改进处理过程。
尝试更改数据库上的事务隔离级别 。 这是链接 。
我猜您的默认隔离级别设置为可重复读取,这会导致select在返回的记录上设置共享锁,当并发请求进入时会发生死锁。要解决此问题,您应该采取锁定选择(使用X锁来锁定记录)而不是S锁)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.