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에서 사용
✅ 트랜잭션 충돌을 방지하고 성능을 최적화하려면 상황에 맞게 두 모드를 적절히 활용해야 함 🚀
오늘은 AI 생태계에 혁신적인 변화를 가져올 것으로 예상되는 MCP(Model Context Protocol)에 대해 상세히 알아보겠습니다. 2024년…
1. TPM이란? TPM(Trusted Platform Module)은 국제 표준 기반의 보안 하드웨어 칩으로, 컴퓨터나 디지털 장비 내에서…
시즌2, 기대했는데... 실망도 두 배!두뇌싸움을 기대했는데, 전략도 없는 자기들만의 감정에 따른 편가르기, 정치싸움이 되어 버린…
BPF(Berkeley Packet Filter) 도어는 해커가 관리자 몰래 뒷문을 새로 만든 것입니다.해커가 명령을 내려 특정 데이터들을 뒷문을…
1. IPC의 개념과 목적 1.1 IPC란 무엇인가? IPC (Inter-Process Communication)는 운영체제 내의 서로 독립적인 프로세스…