ANSI 표준 격리 수준 기준으로, 다음 T1 에서 일어난 현상을 막을… | [SQLD] SQL 개발자 기출유형 모의고사 10회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 10회
ANSI 표준 격리 수준 기준으로, 다음 T1 에서 일어난 현상을 막을 수 있는 가장 낮은 격리 수준은?T1: SELECT 금액 FROM 청구 WHERE 청구번호 = 7; -- 300 T2: UPDATE 청구 SET 금액 = 450 WHERE 청구번호 = 7; T2: COMMIT; T1: SELECT 금액 FROM 청구 WHERE 청구번호 = 7; -- 450
1
READ COMMITTED
2
SERIALIZABLE
3
어느 수준으로도 막을 수 없다
4
REPEATABLE READ
해설
T1 이 이미 읽은 행을 T2 가 수정·커밋해 같은 조회의 값이 달라졌으므로 Non-Repeatable Read 이고, 이를 막는 가장 낮은 수준은 REPEATABLE READ 이다.
REPEATABLE READ 는 트랜잭션이 읽은 행이 끝날 때까지 바뀌지 않게 보장하며, 새 행이 나타나는 팬텀까지 막으려면 SERIALIZABLE 이 필요하다.
- 격리 수준을 REPEATABLE READ 이상으로 올리면 이 현상은 막을 수 있다.
- READ COMMITTED 는 Dirty Read 만 막고 커밋된 수정은 다시 읽을 때 보인다.
- SERIALIZABLE 로도 막히지만 가장 낮은 수준은 아니다.
오류나 개정된 내용이 보이면 알려주세요