Я запуталась. Я читаю о MVCC в Oracle. Я думал, что MVCC означает отсутствие блокировок. Но я где-то еще читал, что все UPDATE
выполняют автоматическую блокировку, независимо от уровня изоляции. Может кто-нибудь объяснить, что происходит во время обновления Oracle? И что происходит, когда несколько зафиксированных транзакций чтения пытаются выполнить одновременное обновление t set c = c + 1, где 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