SQLP
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
Top SQL 선정: V$SQL의 총량·실행당 부하·Child Cursor
원래 이론 →판단 기준
End Counter가 Begin보다 작으면 다음을 확인합니다.
- Instance 또는 PDB Restart
- Parent·
Child Age Out 후 재생성 - Child Address·
Load Time 변화 - 다른
INST_ID·CON_ID연결 - Snapshot 누락
음수 Delta에 절댓값을 적용하지 않습니다.
헷갈리는 개념
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 혼동하기 쉬운 판단 | 정확한 기준 |
|---|---|
V$SQL은 SQL_ID당 한 행이다 | Child Cursor당 한 행이다 |
V$SQLSTATS와 V$SQL은 같은 보존 범위다 | SQLSTATS가 더 오래 남을 수 있지만 Child 상세는 제한적이다 |
| SQL_ID·Child Number만 같으면 같은 Counter Lifetime이다 | Child Address·Load Time 변화도 확인한다 |
| Total Elapsed 1위가 항상 최우선이다 | 단건 SLA·업무 중요도·개선 가능성도 반영한다 |
| EXECUTIONS는 모두 완료된 실행이다 | END_OF_FETCH_COUNT로 완료 실행을 구분한다 |
| FETCHES는 반환 Row 수다 | Fetch Call 횟수다 |
| 평균 실행시간이 안정적 지연을 뜻한다 | Bind·Plan·P95·P99를 확인한다 |
| Buffer Gets가 크면 Physical I/O 문제다 | Logical I/O·CPU 작업량이며 Reads·Wait를 별도 확인한다 |
| PLAN_HASH_VALUE가 같으면 성능도 같다 | Bind·Rows·Cache·Wait·Child 상태는 다를 수 있다 |
| MODULE·ACTION이 모든 실행의 현재 업무를 나타낸다 | 최초 Parse Context이며 공유 Cursor에서는 불완전할 수 있다 |
| ELAPSED_TIME은 벽시계 시간이다 | Parallel에서는 QC와 Worker의 누적 Database Time이다 |
| 음수 Delta는 절댓값으로 바꾼다 | Cursor Reload·Address·Instance·Container 변화를 확인한다 |
대표 계산·예제
문제 구간의 Begin·
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 항목 | Begin | End | Delta |
|---|---|---|---|
| Executions | 10,000 | 14,000 | 4,000 |
| End of Fetch | 9,000 | 12,500 | 3,500 |
| Buffer Gets | 5,000,000 | 9,800,000 | 4,800,000 |
| Elapsed Time | 1,000초 | 1,600초 | 600초 |
| Rows Processed | 200,000 | 240,000 | 40,000 |
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
Gets/Exec
= 4,800,000 / 4,000
= 1,200
Elapsed/Exec
= 600 / 4,000
= 0.15초
Completion Ratio
= 3,500 / 4,000
= 87.5%
Gets/Row
= 4,800,000 / 40,000
= 120
Counter Lifetime이 바뀌면 해당 Delta를 폐기하거나 새 Load 시점부터 별도 구간으로 계산합니다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.