Я неспособен понять deadlock_xml от Azure SQL Server V12. Вот график (что согласуется с основным XML):Столбцы SQL Server: пожалуйста, объясните
Таким образом, процесс ок издал замок Update и процесс л.ш., который также хочет блокировку обновления на тот же ресурс , должен ждать.
Затем процесс rhs запрашивает эксклюзивную блокировку на том же ресурсе, который, по-видимому, заблокирован из-за блокировки обновления процесса lhs (почему? Потому что он запросил один?!).
Моим вопрос:
Почему процесс ок не может ограничить блокировку U к замку X?
Я пытаюсь понять это на высоком уровне, но, тем не менее, здесь есть специфика:
Оба процесса были запущены один и тот же зр
ИСПАНИИ выполняет upsert оп : Вставить, где не существует (Выбрать ...); if @@ ROWCOUNT = 0 Update ...
- транзакции были сериализованы.
@ Шунго Спасибо за ваш ответ! Теперь это ясно. Я был наивным, чтобы ожидать блокировки на логическом, а не на физическом уровне. Слияние с уровнем изоляции «serializable» действительно является решением моей проблемы с перенапряжением. К сожалению, у меня недостаточно отзывов, чтобы публично публиковать свой ответ. – PBof