SQLP

시험 직전 요약장

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

이론 목록

Oracle Lock의 기본 구조: Row Lock·TX Enqueue·TM Enqueue·Lock Mode

원래 이론 →

판단 기준

혼동하기 쉬운 판단정확한 기준
TX 행 하나가 잠긴 Row 한 건TX는 Transaction Resource이며 개별 Row 정보는 Data Block에 저장
enq: TX - row lock contention은 항상 같은 RowUnique Key 후보와 Bitmap Fragment 충돌도 가능
TM RX가 있으면 Table의 다른 DML 정지RX끼리는 호환되므로 서로 다른 Row DML 가능
대량 UPDATE는 자동 Table Lock EscalationOracle은 정상적으로 Row-to-Table Escalation을 사용하지 않음
일반 SELECT는 DML Row Lock을 기다림Undo 기반 Commit 버전을 읽으며 SELECT FOR UPDATE는 예외
Holder는 항상 REQUEST=0Conversion 대기에서는 LMODE>0과 REQUEST>0이 함께 가능
BLOCK=0이면 RAC 전체에서 Blocker 아님Remote Node 관계는 GV$LOCK과 Blocking Instance를 확인
V$LOCKED_OBJECT는 잠긴 Row 목록TM DML Lock을 보유한 Object 목록
ROW_WAIT_*는 과거 Lock 이력현재 다른 Transaction Commit 대기 중일 때만 유효할 수 있음

이 부분의 원문 →

헷갈리는 개념

구분EnqueueLatch·Mutex
대표 목적Transaction·Object Resource의 호환 Mode와 Queue 관리SGA 내부 자료구조의 짧은 보호
대표 예TX, TM, ULCache Buffers Chains Latch, Library Cache Mutex
대기 성격상대 Transaction 종료까지 길어질 수 있음보통 짧은 내부 동기화지만 Hotspot에서는 누적 가능
해소 기준Holder의 Commit·Rollback·Mode Release내부 Critical Section 종료·CPU Scheduling
진단 초점Resource ID, Holder, Requester, Wait ChainHot Structure, Spin·Sleep, CPU, Child Latch·Mutex Location

library cache lock처럼 이름에 Lock이 들어가도 TX·TM Enqueue와 같은 범주가 아닐 수 있습니다. Wait Event와 Resource 종류를 먼저 분류합니다.


이 부분의 원문 →

대표 계산·예제

행은 현재 보유 Mode, 열은 새로 요청하는 Mode로 이해합니다.

보유 \ 요청RSRXSSRXX
RS허용허용허용허용불가
RX허용허용불가불가불가
S허용불가허용불가불가
SRX허용불가불가불가불가
X불가불가불가불가불가

일반 INSERT, UPDATE, DELETE, MERGE, SELECT ... FOR UPDATE는 대상 Table에 주로 RX·SX Mode를 사용합니다. 여러 Session이 RX를 동시에 보유할 수 있으므로 실제 Row 충돌은 Row Header·ITL·TX 상태에서 결정됩니다.

Constraint 부수 효과나 특정 작업에서는 일반적인 SX보다 더 강한 Mode가 잠깐 필요할 수 있으므로, SQL 종류만으로 항상 Mode를 고정하지 않고 실제 LMODE와 REQUEST를 확인합니다.


이 부분의 원문 →

내 최근 연습 오답

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

학습 기록 →

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