Предотвращение тупиковых ситуаций в транзакциях - PullRequest
0 голосов
/ 07 февраля 2019

Один из наших разработчиков выдвинул теорию устранения взаимоблокировок, и мне интересно, пробовал ли кто-нибудь еще это решение.Это на самом деле работает?Есть ли смысл в концепции?

"Если взаимоблокировки продолжаются, то я бы определил подходящую таблицу, чтобы выполнить поддельное обновление сразу после BEGIN TRAN, чтобы вызвать микроблокирование, и выполнить это поддельное обновление воба процесса, убедившись, что trx также мал по объему. Я бы предположил, что в этих случаях будет полезно использовать таблицу syCustomers, а ложное обновление должно быть выполнено CustomerKey. В этом случае обоим процессам потребуется тольковыполнить работу в рамках BEGIN TRAN trx только для одного CustomerKey, а затем COMMIT TRAN, а затем создать следующую учетную запись. "

BEGIN TRAN
UPDATE syCustomers SET FakeLock = FakeLock WHERE CustomerKey = @CustomerKey
<now do the real updates as required>
COMMIT

Он убежден, что это что-то делает с логикой блокировки, предотвращающей взаимные блокировки.Ваши мысли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...