SQLP

시험 직전 요약장

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

이론 목록

대량 DML 비용 구조: 탐색·Index·Undo·Redo·Lock·Commit

원래 이론 →

판단 기준

관찰정확한 판단 기준
변경 행이 적다대상 탐색에서 읽은 Row·Block 수까지 확인
실행계획 Cost가 낮다Index·Trigger·Undo·Redo·Lock·Commit 비용은 별도 실측
Index가 많을수록 빠르다Query는 빨라질 수 있지만 Insert·Delete와 Key Update 비용 증가
UPDATE는 Table만 바꾼다변경 Column을 포함한 Index는 기존 Entry 삭제와 신규 Entry 추가
COMMIT하면 Data Block이 즉시 Datafile에 기록된다Transaction Redo가 먼저 안전하게 기록되면 Commit 완료 가능
Redo는 Table·Index 변경만 기록한다Undo Block과 Transaction Table 변경도 Redo로 보호
Commit을 자주 하면 ORA-01555가 해결된다장기 Query·Undo Retention·재사용·Fetch Across Commit을 함께 판단
대량 Row Lock은 자동으로 Exclusive Table Lock으로 승격된다Row Lock과 TM Lock은 별도이며 일반 DML TM RX는 동시 DML을 허용
Foreign Key Index는 Join 성능만 위한 것부모 Key 변경 시 Child Full Scan과 Table Lock 방지에도 중요
Trigger는 Statement당 한 번이다Row Trigger는 영향받는 Row마다 실행
log file sync가 크면 LGWR I/O만 문제다CPU Scheduling, log file parallel write, Standby, Commit량 함께 확인
Batch Size와 Commit Unit은 같다처리 단위와 Transaction 원자성 단위는 독립적으로 설계 가능

이 부분의 원문 →

헷갈리는 개념

업무가 허용한다면 다음 후보를 비교합니다.

  • Set 기반 MERGE·UPDATE·DELETE
  • Staging Table과 Partition Exchange
  • Direct-Path Insert
  • Partition 단위 병렬 처리
  • Error Logging과 재처리 Queue

각 대안은 Logging, Constraint, Trigger, Index, Lock, Space, Backup·Standby 영향을 함께 검증해야 합니다.


이 부분의 원문 →

대표 계산·예제

Index는 Query Access를 빠르게 하지만 Base Table 변경 시 자동으로 유지됩니다.

대상 행 수를 N, Table의 전체 Index 수를 K_all, 변경 Column을 포함한 Index 수를 K_changed라고 하면 첫 번째 추정은 다음과 같습니다.

예시·텍스트
INSERT의 Index Entry 추가량
≈ N × K_all

DELETE의 Index Entry 삭제량
≈ N × K_all

Index Key UPDATE의 논리적 Entry 변경량
≈ 2 × N × K_changed
  (기존 Entry 삭제 + 새 Entry 추가)

이 식은 물리 I/O나 Redo Byte를 정확히 계산하는 공식이 아니라 비교를 위한 논리적 출발점입니다. 실제 비용은 다음에 따라 달라집니다.

  • Index Key 폭과 Number of Columns
  • BLEVEL·Leaf Block 분포
  • 증가 Key의 Right-Hand Hot Block
  • Unique 검사와 동시 미확정 Key
  • Bitmap Index의 넓은 Lock 영향과 DML 동시성
  • Local·Global Partitioned Index
  • Cluster Factor가 아니라 DML 시 접근해야 하는 Leaf 위치와 Block 경합
  • Buffer Cache Hit, Block Split, Redo·Undo 크기
이 부분의 원문 →

내 최근 연습 오답

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

학습 기록 →

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