FOR READ ONLY USE CURRENTLY COMMITTED

Ouroboros·2025년 11월 24일

데이터베이스

목록 보기
8/9

DB2에서 SELECT 쿼리의 잠금 방식(LOCKING BEHAVIOR)을 제어하는 옵션

1. FOR READ ONLY

  • 이 SELECT 문은 데이터 변경이 일어나지 않는다는 의미.

ㅡ 즉, 커서(Cursor)에서 UPDATE / DELETE를 하지 않겠다는 선언.

  • DB2 입장에서는
    → “이 쿼리는 읽기만 하니까 잠금(lock)을 최소화해도 되겠다”
    라고 판단해서 잠금을 줄여서 성능이 좋아져.

2. USE CURRENTLY COMMITTED

  • 읽기 작업을 할 때, 가장 최신으로 '커밋된 데이터'만 읽겠다는 의미.
    → 아직 커밋되지 않은 변경 중인 레코드(UNCOMMITTED 상태)는 무시하고, 기존 커밋된 데이터를 읽음.

ㅡ 즉, 다른 세션이 UPDATE 중이어도 기다리지 않고 예전 커밋 데이터만 읽고 바로 조회함.
이를 통해 락 경합을 줄이고 조회 성능을 크게 올림.

0개의 댓글