Показать сообщение отдельно
Старый 07.10.2019, 14:29   #22  
NitroJunkie is offline
NitroJunkie
Участник
 
19 / 28 (1) +++
Регистрация: 03.10.2019
Цитата:
Сообщение от trud Посмотреть сообщение
В READ COMMITED SNAPSHOT блокировок вообще нет. т.е. в общем случае предполагается что если у вас 2 сессии меняют одно и тоже, то у вас что-то не в порядке с бизнес процессами и одна из сессий при попытке сохранения записи получит сообщение о ошибке - "Запись изменена другим пользователем, обновите форму".
Есть еще много частных случаев - например в случае остатков, они не меняются при обработке документа, вместо этого создается лог изменений и по событию окончания транзакции этот лог записывается в основную таблицу.
Вот еще несколько частных случаев - https://denistrunin.com/understanding-sql-blocking
Я знаю, что такое READ COMMITED SNAPSHOT. Речь о том, что если например сделать сначала select во временную таблицу (или написать while select), а только потом update, то если уровень изоляции не RR (ставится блокировка или проверяется update conflict), может получится некорректный показатель из-за non-repeatable read.