Oracle 데이터베이스에서 데이터를 읽고 처리할 때, Consistent Mode(일관성 모드)와 Current Mode(현재 모드) 두 가지 방식이 존재합니다.
이 모드는 쿼리의 실행 방식과 데이터 일관성을 유지하는 방법에 따라 결정됩니다.
Consistent Mode(일관성 모드)는 쿼리 실행 시점의 일관된 데이터를 제공하는 방식입니다.
즉, 쿼리가 시작된 시점의 SCN(System Change Number, 변경 번호) 기준으로 데이터를 반환합니다.
-- 세션 1: 데이터 조회 (Consistent Mode)
SELECT * FROM employees WHERE emp_id = 100;
-- 세션 2: 데이터 변경 (Current Mode)
UPDATE employees SET salary = 5000 WHERE emp_id = 100;
COMMIT; ✔ 결과:
SELECT는 변경된 데이터가 아니라 쿼리 시작 시점의 데이터(SCN 기준) 반환salary = 5000)는 이후 새로운 트랜잭션에서 조회 가능Current Mode(현재 모드)는 가장 최신 상태의 데이터를 읽고 수정하는 방식입니다.
즉, 데이터가 변경되면 가장 최신 값을 반환하며, UNDO를 사용하지 않음.
SELECT ... FOR UPDATE 문장은 Current Mode로 실행되어 최신 데이터를 잠금(Locking)할 수 있음-- 세션 1: 데이터 변경
UPDATE employees SET salary = 5000 WHERE emp_id = 100;
-- 세션 2: 같은 데이터를 조회 (현재 변경된 값이 반영됨)
SELECT salary FROM employees WHERE emp_id = 100 FOR UPDATE; ✔ 결과:
SELECT ... FOR UPDATE는 Current Mode에서 실행되므로 최신 데이터(salary = 5000) 반환| 비교 항목 | Consistent Mode (일관성 모드) | Current Mode (현재 모드) |
|---|---|---|
| 데이터 조회 시점 | 쿼리 실행 시작 시점의 데이터 반환 (SCN 기준) | 변경된 최신 데이터 반환 |
| UNDO 사용 여부 | ✅ UNDO 사용 (변경 전 데이터 조회) | ❌ UNDO 사용하지 않음 |
| DML 적용 여부 | ❌ DML(UPDATE, DELETE)에는 적용되지 않음 | ✅ DML에서 사용됨 |
| 트랜잭션 일관성 유지 | ✅ 모든 테이블이 동일한 시점의 데이터를 반환 | ❌ 트랜잭션 변경 사항이 즉시 반영됨 |
| 사용되는 SQL 문 | SELECT, SELECT JOIN, SELECT WHERE | UPDATE, DELETE, SELECT ... FOR UPDATE |
| 변경된 최신 데이터 조회 가능 여부 | ❌ 불가능 (쿼리 시작 시점 기준) | ✅ 가능 (가장 최신 데이터 조회) |
| 성능 | 비교적 낮음 (UNDO 데이터 필요) | 빠름 (최신 블록 바로 조회) |
✔ 핵심 차이점
SELECT 문에서 기본적으로 사용됨UPDATE, DELETE, SELECT ... FOR UPDATE에서 사용됨SELECT 문이 실행될 때 트랜잭션이 변경해도 영향을 받지 않도록 해야 하는 경우📌 예제: 일관된 데이터 조회
SELECT * FROM employees WHERE department = 'IT'; UPDATE, DELETE 같은 DML 작업이 수행될 때 현재 값 기준으로 실행SELECT ... FOR UPDATE를 통해 최신 데이터를 잠금 처리하여 동시 수정 방지📌 예제: 최신 데이터 조회 및 잠금
SELECT salary FROM employees WHERE emp_id = 100 FOR UPDATE; ✅ Consistent Mode는 쿼리 실행 시점의 일관된 데이터를 제공하며, UNDO를 사용하여 이전 상태를 복구
✅ Current Mode는 가장 최신 데이터를 즉시 반영하며, DML 문장과 SELECT … FOR UPDATE에서 사용
✅ 트랜잭션 충돌을 방지하고 성능을 최적화하려면 상황에 맞게 두 모드를 적절히 활용해야 함 🚀
요양원 선택 전 반드시 확인해야 할 체크리스트를 공개합니다. 공식 평가 자료 조회법, 방문 시 확인…
공공기관 채용 비리의 실태와 피해 지원자의 대응법을 정리했습니다. 채용 비리 신고 방법, 공익신고자 보호제도, 취준생…
주식 손실을 세금 절약에 활용하는 합법적 방법을 공개합니다. 해외주식 손익통산, ISA 계좌 활용, 연금계좌 절세까지…
배달이 예상 시간보다 크게 늦으면 취소·환불을 요청할 수 있습니다. 배달앱별 지연 취소 방법과 잘못 배달됐을…
통신비 절약의 핵심은 요금제 최적화입니다. 내 데이터 사용량 확인법, 알뜰폰 전환 비교, 위약금 없이 요금제…