Je suis confus. Je lis à propos de MVCC dans Oracle. Je pensais que MVCC ne signifiait pas de verrous. Mais, j'ai lu ailleurs que tous les UPDATE
s verrouillent automatiquement, quel que soit le niveau d'isolement. Quelqu'un peut-il expliquer ce qui se passe lors d'une mise à jour Oracle? Et que se passe-t-il lorsque plusieurs transactions validées en lecture essayent de faire un update t set c = c + 1 where id = 3
concurrent. Quel est le résultat, donné c = 1 avant l'une des transactions, et que se passe-t-il avec les verrous et SCN?Mises à jour simultanées dans Oracle: Verrouillage ou non?
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
Merci. Donc, MVCC signifie que ce verrou n'affecterait pas les lectures, cependant, non? Juste d'autres écrit à ce même enregistrement, où id = 3? –
@RonGarrity Yup. Oracle peut utiliser le journal d'annulation pour fournir une vue cohérente en lecture de la base de données à toutes les sessions qui y sont connectées. – NullUserException