SQLP
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
Oracle 메모리 구조: SGA·PGA·UGA와 Workarea
원래 이론 →판단 기준
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 잘못된 판단 | 정확한 기준 |
|---|---|
| SGA 안에 Server Process가 들어 있다 | SGA는 Memory, Process는 별도 실행 주체다 |
| PGA는 Session마다 하나다 | PGA는 Process 기준이고 UGA가 Session 상태다 |
| Private SQL Area는 항상 PGA다 | Shared Server의 Persistent Area는 UGA를 통해 SGA에 위치할 수 있다 |
| Shared Pool은 Query 결과를 저장한다 | 주 대상은 실행 구조와 Metadata이며 Result Cache는 별도 Subarea다 |
| Buffer Cache는 최종 Result Set을 저장한다 | Datafile Block의 복사본을 저장한다 |
| Commit은 DBWn의 Datafile Write 완료다 | 일반 동기 Commit은 LGWR의 Redo 기록 완료가 핵심이다 |
| PGA_AGGREGATE_TARGET은 절대 상한이다 | Target이며 실제 사용이 초과할 수 있다 |
| TEMP Spill이면 무조건 PGA를 늘린다 | SQL 입력량·Plan·Row 폭·동시성을 먼저 확인한다 |
| V$PGASTAT 누적값이 크면 현재 장애다 | Startup 이후 누적값이므로 구간 Delta가 필요하다 |
| MEMORY_SIZE와 MEMORY_TARGET을 함께 크게 둔다 | 26ai에서 MEMORY_SIZE 사용 시 MEMORY_TARGET 계열은 0이어야 한다 |
헷갈리는 개념
Private SQL Area는 Parsed SQL을 실행하기 위한 Session별 정보를 보관합니다.
- Bind Variable Value
- Query Execution State
- Cursor·
Fetch 상태 - Run-Time Memory
Dedicated Server에서는 Session과 Server Process가 밀접하게 연결되므로 Private SQL Area가 PGA에 위치합니다.
Shared Server에서는 Private SQL Area를 두 관점으로 나눠야 합니다.
도식좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
Persistent Area
→ Database Call 사이에도 유지해야 하는 Session 상태
→ UGA에 포함
→ SGA의 Large Pool, Large Pool이 없으면 Shared Pool
Run-Time Area
→ 현재 DML·DDL Call을 실행하는 동안 필요한 작업 상태
→ 해당 Call을 처리하는 Shared Server Process의 PGA
따라서 “Private SQL Area는 항상 PGA”라는 문장은 Shared Server를 포함하면 부정확합니다. 반대로 Workarea의 Run-Time Allocation은 Shared Server에서도 Process PGA에서 사용됩니다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.