나는 혼란 스럽다. Oracle에서 MVCC에 대해 읽었습니다. 나는 MVCC가 잠금 장치가 없다고 생각했다. 그러나 나는 어딘가 다른 곳에서 모두 UPDATE
이 격리 수준에 관계없이 자동 잠금을 수행한다고 읽었습니다. 오라클 업데이트 중에 어떤 일이 일어날 지 설명 할 수 있습니까? 그리고 여러 개의 읽기 커밋 된 트랜잭션이 동시에 수행하려고 시도 할 때 어떤 일이 발생합니까? update t set c = c + 1 where id = 3
. 결과는 무엇입니까? 트랜잭션 전에 c = 1이 주어졌고 잠금 장치와 SCN은 어떻게됩니까?Oracle의 동시 업데이트 : 잠금 여부
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
감사합니다. 그래서 MVCC는이 잠금이 읽기에는 영향을 미치지 않는다는 것을 의미합니다. 그렇습니까? id = 3 인 동일한 레코드에 다른 레코드가 기록됩니까? –
@RonGarrity 그래. 오라클은 실행 취소 로그를 사용하여 연결된 모든 세션에 데이터베이스 일관성있는보기를 제공 할 수 있습니다. – NullUserException