SQLP
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
Cursor 재사용 계층: Library Cache·Session Cursor Cache·JDBC Statement Cache
원래 이론 →판단 기준
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 단순 판단 | 정확한 기준 |
|---|---|
| Hard Parse가 적으면 Parse 문제가 없다 | 반복 Soft Parse와 Parse Call 자체도 CPU·동기화 비용을 만든다 |
| Session Cursor Cache Hit면 Parse Call이 없었다 | Parse Call로 기록될 수 있지만 실제 Reparse가 생략된다 |
| Session Cursor Cache는 즉시 모든 SQL을 Cache한다 | 같은 Cursor가 세 번 닫힌 뒤 반복 Statement로 판단해 Cache할 수 있다 |
SESSION_CACHED_CURSORS는 Open Cursor 수다 | 닫힌 Session Cursor Cache의 최대 크기다 |
OPEN_CURSORS보다 Session Cache를 크게 설정할 수 없다 | 두 Parameter는 독립적이며 Cached Session Cursor는 Open 상태가 아니다 |
| Statement Cache는 Pool 전체에 하나다 | Physical Connection마다 별도 Cache가 있다 |
| 일반 Statement도 JDBC Implicit Cache 대상이다 | Prepared·Callable Statement가 대상이며 Plain Statement는 대상이 아니다 |
V$SESSION_CURSOR_CACHE만 보면 효과를 알 수 있다 | 공식적으로 Parameter 효과 측정 View가 아니므로 V$SESSTAT·부하 Delta가 필요하다 |
V$OPEN_CURSOR 행 수가 현재 Open Cursor 수다 | Cached·PL/SQL 등 여러 Cursor Type을 포함할 수 있다 |
| Cache는 클수록 좋다 | Connection 수·Open Cursor·Memory·Hit·응답시간을 함께 검증한다 |
헷갈리는 개념
SQL 실행에는 다음 요소가 서로 연결됩니다.
도식좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
Application Statement Object
→ Database Session Cursor
→ Shared Child Cursor
→ Library Cache의 실행 가능한 구조
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 계층 | 대표 저장 위치 | 재사용 단위 | 주로 줄이는 비용 |
|---|---|---|---|
| 애플리케이션 Prepared Statement | 애플리케이션 Process | 같은 Statement Object | 반복 Prepare·Parse 요청, Client 객체 생성 |
| Oracle JDBC/UCP Statement Cache | Physical Connection별 Client Cache | 동일 SQL·Statement Type·Result Set Type | Cursor·Statement 재생성과 통신·Parse 요청 |
| Session Cursor Cache | Database Session Memory | 같은 Session이 반복한 닫힌 Session Cursor | 실제 Reparse와 Library Cache 탐색 경로 |
| Library Cache | Shared Pool | 공유 가능한 Parent·Child Cursor | Hard Parse·Optimization·실행구조 생성 |
여기서 Session Cursor는 특정 Session이 Shared Child Cursor를 사용하는 인스턴스입니다. Library Cache의 Shared Child Cursor와 Session Cursor는 같은 객체가 아닙니다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.