Я в замешательстве. Я читаю о MVCC в Oracle. Я думал, что MVCC означает отсутствие замков. Но я читал где-то еще, что все UPDATE
делают автоматическую блокировку, независимо от уровня изоляции. Может кто-нибудь объяснить, что происходит во время обновления Oracle? И что происходит, когда несколько транзакций, считывающих чтение, пытаются выполнить одновременное update t set c = c + 1 where id = 3
. Каков результат, учитывая c = 1 перед любой из транзакций, и что происходит с блокировками и SCN?
Begin T1
Begin T2
T1: update t set c = c + 1 where id = 3
T2: update t set c = c + 1 where id = 3
Commit T1
Commit T2