SQLP

시험 직전 요약장

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

이론 목록

응답시간 분석: DB Time·CPU·Wait Event

원래 이론 →

판단 기준

혼동하기 쉬운 판단정확한 기준
DB Time은 사용자 한 건의 응답시간이다모든 Foreground Session의 Database 활동 누적시간이다
DB Time은 벽시계 시간보다 작아야 한다동시 Session 때문에 더 클 수 있다
DB Time = DB CPU + 모든 WaitIdle을 제외한 Foreground Wait 범위를 맞춘다
V$SESSION의 EVENT는 항상 현재 Wait다STATE가 WAITING이 아니면 마지막 Wait일 수 있다
SECONDS_IN_WAIT만 보면 된다Deprecated이며 WAIT_TIME_MICRO·TIME_SINCE_LAST_WAIT_MICRO를 사용한다
Wait 횟수가 가장 크면 최우선이다문제 구간의 Foreground Total Time과 업무 영향을 우선한다
Average Wait가 낮으면 Outlier가 없다Histogram·P95·ASH 구간을 확인한다
SQL*Net message from client가 크면 Network 병목이다Client의 다음 Call을 기다리는 Idle Time이 일반적이다
CPU Time이 크면 CPU 증설부터 한다SQL 작업량과 OS 포화를 함께 확인한다
Latch Miss Ratio만 낮추면 된다SLEEPS·WAIT_TIME과 상위 SQL·Hot Resource를 확인한다
한 병목을 제거하면 진단이 끝난다Bottleneck Migration 후 다시 측정한다

이 부분의 원문 →

헷갈리는 개념

사용자가 화면에서 측정한 8초와 Database가 기록한 시간은 같은 범위가 아닐 수 있습니다.

도식
사용자 응답시간 8.0초
├─ Browser·Client 처리         0.4초
├─ Network                     0.3초
├─ Application Queue·Logic     2.0초
├─ Connection Pool Wait        1.3초
└─ Database Call               4.0초

Database Call을 50% 개선해도 전체 화면은 약 2초만 줄어듭니다. 성능 진단의 첫 단계는 측정 범위를 명확히 하는 것입니다.

범위포함하는 시간
End-to-End Response TimeClient 요청부터 최종 응답 완료까지의 전체 시간
Application TimeQueue, Business Logic, Connection Pool, 외부 API 등
Database Call Elapsed Time한 Database Call의 시작부터 완료까지의 경과시간
DB Time모든 Foreground Session이 Database Call 안에서 소비한 시간의 합
DB CPUForeground Session이 실제 CPU에서 실행한 시간
Foreground Non-Idle WaitForeground Session이 Non-Idle Event를 기다린 시간
이 부분의 원문 →

대표 계산·예제

예를 들어 10분 구간의 DB Time이 1,000초라면 다음처럼 분해할 수 있습니다.

이 부분의 원문 →

내 최근 연습 오답

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

학습 기록 →

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