SQLP

시험 직전 요약장

판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.

이론 목록

DML Write Consistency: Current 갱신·Statement Restart·Lost Update

원래 이론 →

판단 기준

업무 특성우선 검토 방식
단순 증가·감소상대값을 사용하는 원자적 UPDATE
재고·한도처럼 조건과 변경이 결합조건부 UPDATE와 Row Count
사용자가 읽은 뒤 나중에 저장Version 또는 원본 값 비교
짧은 처리 동안 Row 선점 필요SELECT FOR UPDATE
중복 업무 요청 차단Unique Constraint와 Idempotency Key
다중 Worker QueueSELECT FOR UPDATE SKIP LOCKED
Transaction 전체 Snapshot 필요SERIALIZABLE 또는 READ ONLY의 적합성 검토

어떤 방식도 이름만 적용해서는 충분하지 않습니다. 충돌 시 대기·실패·재조회·병합·재시도 가운데 무엇을 할지 업무 정책으로 정의해야 합니다.


이 부분의 원문 →

헷갈리는 개념

Oracle 공식 문서는 마지막 조회 이후 Row가 바뀌지 않았는지 확인하기 위해 원래 값을 WHERE 절에 포함하는 Lost Update 방지 예를 제시합니다.

SQL
UPDATE employees
SET    email        = :new_email,
       phone_number = :new_phone
WHERE  employee_id  = :employee_id
  AND  email        = :old_email
  AND  phone_number = :old_phone;
이 부분의 원문 →

대표 계산·예제

Oracle Development Guide는 SELECT FOR UPDATE의 Return Set이 실행 중 변경되면 다음 절차가 일어날 수 있다고 설명합니다.

도식
변경되지 않은 Row Lock 획득
→ Lock을 이용해 Read-Consistent Snapshot 확보
→ 남은 Row의 Lock 획득을 위해 Query Restart

이 사례는 Oracle이 문장 일관성과 Lock 집합을 맞추기 위해 Query를 재시작할 수 있음을 보여 줍니다. 다만 이를 모든 일반 UPDATE·DELETE의 공개된 동일 동작 규칙으로 확대 해석해서는 안 됩니다.

이 부분의 원문 →

내 최근 연습 오답

현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.

학습 기록 →

오답 기록을 확인하고 있습니다.