SQLP

시험 직전 요약장

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

이론 목록

Top SQL 선정: V$SQL의 총량·실행당 부하·Child Cursor

원래 이론 →

판단 기준

End Counter가 Begin보다 작으면 다음을 확인합니다.

  1. Instance 또는 PDB Restart
  2. Parent·Child Age Out 후 재생성
  3. Child Address·Load Time 변화
  4. 다른 INST_ID·CON_ID 연결
  5. Snapshot 누락

음수 Delta에 절댓값을 적용하지 않습니다.


이 부분의 원문 →

헷갈리는 개념

혼동하기 쉬운 판단정확한 기준
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·End Snapshot을 같은 Child Lifetime으로 연결합니다.

항목BeginEndDelta
Executions10,00014,0004,000
End of Fetch9,00012,5003,500
Buffer Gets5,000,0009,800,0004,800,000
Elapsed Time1,000초1,600초600초
Rows Processed200,000240,00040,000
예시·텍스트
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 시점부터 별도 구간으로 계산합니다.


이 부분의 원문 →

내 최근 연습 오답

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

학습 기록 →

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