SQLP

시험 직전 요약장

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

이론 목록

DB Buffer Cache 내부 동작: Hash 탐색·Buffer 상태·Hot Block 진단

원래 이론 →

판단 기준

Database Buffer Cache는 Datafile의 Oracle Block 복사본을 SGA에 보관합니다.

도식
Block 요청
→ Data Block Address로 Buffer Cache 탐색
   ├─ Cache Hit: Memory의 Buffer 사용
   └─ Cache Miss: Datafile에서 Physical Read 후 적재

Oracle은 원하는 Block을 찾기 위해 Data Block Address를 Hash하여 Buffer Header Chain을 탐색합니다. 같은 Chain이나 같은 Block에 접근이 집중되면 latch: cache buffers chains, buffer busy waits, read by other session 같은 경합이 나타날 수 있습니다.

도식
Data Block Address
→ Hash Bucket
→ Buffer Header Chain
→ 원하는 Buffer Header
→ Buffer의 Block Image 사용

Buffer Cache 튜닝의 핵심은 Cache 크기만 늘리는 것이 아니라 어떤 SQL이 어떤 Block을 얼마나 자주 방문하고, 같은 Block에 동시 접근이 집중되는 이유가 무엇인지 찾는 것입니다.

도식
용량 문제
→ 재사용할 Buffer 부족·Physical Read 증가

작업량 문제
→ SQL의 과도한 Logical I/O

집중 문제
→ 같은 Block·Chain에 동시 접근

쓰기 문제
→ Dirty Buffer 생성 속도와 DBWn 처리 속도 불균형

이 이론의 범위

SQLP SQL 고급 활용 및 튜닝 → 데이터베이스 아키텍처 범위에서 Buffer Cache 구조, Current·Consistent Mode, Buffer 상태, DBWn, CBC·Buffer Busy·Free Buffer Wait와 Hot Block 진단을 다룹니다.


이 부분의 원문 →

헷갈리는 개념

Datafile에는 영속적인 Oracle Block이 저장됩니다.

Buffer Cache에는 이 Block을 읽어 온 Memory 복사본인 Buffer가 존재합니다.

도식
Datafile의 Block
→ Disk의 영속 데이터

Buffer Cache의 Buffer
→ SGA에 있는 Block Image

같은 Datafile Block이 여러 시점의 Image로 존재할 수 있습니다.

  • Current Block
  • Consistent Read Block
  • RAC의 Past Image
  • Recovery 중인 Block Image

따라서 “Block 하나당 Buffer 하나가 항상 존재한다”는 단순한 1:1 구조로 이해하지 않습니다.

Buffer Header는 Block Image 자체와 별도로 Buffer의 식별자·상태·Chain Link·사용 정보를 관리합니다. SQL Result Cache처럼 최종 Query Row 집합을 저장하는 구조가 아닙니다.


이 부분의 원문 →

내 최근 연습 오답

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

학습 기록 →

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