SQLP
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
응답시간 분석: DB Time·CPU·Wait Event
원래 이론 →판단 기준
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 혼동하기 쉬운 판단 | 정확한 기준 |
|---|---|
| DB Time은 사용자 한 건의 응답시간이다 | 모든 Foreground Session의 Database 활동 누적시간이다 |
| DB Time은 벽시계 시간보다 작아야 한다 | 동시 Session 때문에 더 클 수 있다 |
| DB Time = DB CPU + 모든 Wait | Idle을 제외한 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가 기록한 시간은 같은 범위가 아닐 수 있습니다.
도식좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
사용자 응답시간 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초만 줄어듭니다. 성능 진단의 첫 단계는 측정 범위를 명확히 하는 것입니다.
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 범위 | 포함하는 시간 |
|---|---|
| End-to-End Response Time | Client 요청부터 최종 응답 완료까지의 전체 시간 |
| Application Time | Queue, Business Logic, Connection Pool, 외부 API 등 |
| Database Call Elapsed Time | 한 Database Call의 시작부터 완료까지의 경과시간 |
| DB Time | 모든 Foreground Session이 Database Call 안에서 소비한 시간의 합 |
| DB CPU | Foreground Session이 실제 CPU에서 실행한 시간 |
| Foreground Non-Idle Wait | Foreground Session이 Non-Idle Event를 기다린 시간 |
대표 계산·예제
예를 들어 10분 구간의 DB Time이 1,000초라면 다음처럼 분해할 수 있습니다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.