我们的一位开发人员提出了消除死锁的理论,我想知道是否有人尝试过这种解决方案。它真的有效吗?这个概念有优点吗?
“如果死锁继续,那么我将找出一个合适的表以在BEGIN TRAN引起微阻塞后立即进行假更新,并在两个进程中都进行假更新,确保trx也是在这种情况下,我猜想syCustomers表会很好用,而虚假更新应该由CustomerKey完成,然后在范围方面,这两个过程都只需要在BEGIN TRAN trx中为一个CustomerKey进行工作仅然后再提交TRAN,然后执行下一个帐户。”
BEGIN TRAN
UPDATE syCustomers SET FakeLock = FakeLock WHERE CustomerKey = @CustomerKey
<now do the real updates as required>
COMMIT
他坚信这会对防止死锁的锁定逻辑有所帮助。你有什么想法吗?