데이터 아키텍처 & 처리기술 & DBMS/Oracle

문장수준 읽기 일관성

anodos 2023. 12. 21. 16:14

Oracle 데이터베이스에서 "문장수준 읽기 일관성"은 주로 트랜잭션 내에서 여러 SQL 문장을 수행할 때, 해당 트랜잭션에서 읽은 데이터가 일관성을 유지하도록 하는 개념입니다. 

 

이것은 특히 트랜잭션 도중에 다른 트랜잭션이 데이터를 수정하거나 삽입하는 경우에 중요합니다.

Oracle에서 문장수준 읽기 일관성은 기본적으로 트랜잭션 내에서 수행되는 각 SQL 문장이 동일한 데이터 스냅샷을 보게 함으로써 달성됩니다. 이것은 다음과 같은 방식으로 작동합니다:

1. 트랜잭션 시작 

트랜잭션이 시작되면 Oracle은 해당 트랜잭션에 대한 일관된 데이터 스냅샷을 만듭니다.

2. SQL 문장 실행 

트랜잭션 내에서 여러 SQL 문장이 실행됩니다. 

각 문장은 해당 트랜잭션의 시작 시점에서의 데이터 스냅샷을 기반으로 실행됩니다.


3. 다른 트랜잭션과 격리

다른 트랜잭션에서의 변경 사항은 현재 트랜잭션에 영향을 미치지 않습니다.

현재 트랜잭션은 자체적인 일관된 데이터 스냅샷을 유지하며 다른 트랜잭션과 격리됩니다.

4. 커밋 또는 롤백

트랜잭션은 커밋되거나 롤백됩니다. 커밋된 경우에는 트랜잭션이 수행한 변경 사항이 데이터베이스에 적용되며, 롤백된 경우에는 변경 사항이 취소되어 이전 상태로 돌아갑니다.


이렇게 함으로써, 트랜잭션 내에서 수행되는 각 SQL 문장이 동일한 데이터 일관성을 유지하게 되어, 트랜잭션을 통한 데이터 조작이 예측 가능하고 안정적으로 이루어질 수 있습니다. 문장수준 읽기 일관성은 복잡한 데이터 조작 작업을 수행하는 트랜잭션에서 중요한 특성 중 하나입니다.

반응형

'데이터 아키텍처 & 처리기술 & DBMS > Oracle' 카테고리의 다른 글

Read Committed  (0) 2023.12.21
테이블 레벨 Lock 읽기 일관성 확보  (0) 2023.12.21
Oracle Undo 세그먼트 구조  (0) 2023.12.21
Block-Level Lock  (0) 2023.12.21
Lock Byte  (0) 2023.12.21