Wait 별 Top SQL
Wait 별 Top SQL은 튜닝 우선순위를 빠르게 파악하는 데 중점을 두고 분석합니다. 특정 시간대에 가장 많은 대기 시간이 발생한 Wait Class와 Wait Event를 차트와 테이블로 한눈에 확인할 수 있으며, Top SQL 테이블에서 실행 횟수와 평균 시간을 비교할 수 있습니다.
기본 화면 안내

Wait Class 차트
클래스 차트 또는 범레를 클릭하면 해당 클래스가 필터에 적용됩니다. 차트나 범례를 다시 클릭하면 필터가 해제됩니다.
-
차트 상단의 Wait Class 막대 차트는 현재 분석 기간의 전체 대기 시간 비중을 시각적으로 보여줍니다.
-
선택된 필터는 태그 형태로 표시됩니다.
Wait Event 목록
클래스가 선택되지 않은 초기에 선택한 타임셀렉터 범위 중 발생 빈도가 가장 높은 이벤트를 기준으로 표시됩니다. Wait Class 필터가 적용되면 해당 클래스의 이벤트 목록이 표시됩니다.
Wait Event 목록에서 Wait Event를 선택하면, 해당 내역이 SQL List 필터에 추가됩니다.
Wait / System Stat Trends
시간대별 Wait Class의 분포 및 세션 수를 시각적으로 표시합니다. 특정 시간대의 대기 이벤트 증가 패턴을 확인할 수 있습니다. Wait(time), Wait(count), Latch, Enqueue, Stat, Cpu, Memory, Session Count의 분석 카테고리를 선택할 수 있습니다.
SQL List 목록
각 SQL 항목에 대해 Elapsed Time, CPU Time, Wait Time, Execute Count, Logical Reads 등 주요 실행 성능 지표가 함께 표시되어 빠른 비교 분석이 가능합니다.
-
기본 상태(미선택 시): Elapsed Time이 가장 높은 50개 쿼리 표시
-
클래스 선택 시: 선택한 클래스의 Wait Time이 가장 높은 50개 쿼리 표시
Wait Event 선택 시
Wait Event 목록에서 이벤트를 선택하면 SQL List에 선택한 이벤트를 기준으로 한 두 항목이 추가됩니다. 기존 elapsed_wait 은 SQL의 전체 대기 시간이므로, 선택한 이벤트가 그중 얼마를 차지하는지는 다음 항목으로 확인합니다.
| Item | Description |
|---|---|
wait_time | 해당 SQL이 선택한 이벤트를 기다린 시간(초) |
wait_time_percentage | 선택한 이벤트의 전체 대기 시간 중 해당 SQL이 차지하는 비중(%) |
정렬 기준도 elapsed_wait 내림차순에서 wait_time 내림차순으로 바뀝니다. 선택한 이벤트를 가장 오래 기다린 SQL이 위로 올라옵니다.
wait_time_percentage 의 분모는 상위 50건으로 자르기 전 전체 합계입니다. 따라서 화면에 표시된 값을 모두 더해도 잘려나간 SQL만큼 100%보다 작을 수 있습니다.
쿼리 자세히 보기
조회된 결과 목록에서 query 컬럼 항목을 선택하면 SQL 상세 창이 나타납니다. SQL 통계 보기 → 버튼을 클릭해, 해당 SQL 쿼리문과 관련한 통계 정보를 확인할 수 있는 SQL 통계 메뉴로 이동할 수 있습니다.

SQL 상세 창의 탭은 다음과 같습니다.
-
Trend: 특정 SQL의 실행 시간, I/O, 대기 이벤트를 종합적으로 분석하여 성능 병목 지점을 빠르게 확인할 수 있습니다.
-
Runtime Plan: 선택된 SQL 쿼리의 실행 계획과 런타임 정보를 제공합니다. 실행 횟수, 평균 실행 시간, 평균 물리적 읽기 등 세부 정보를 제공합니다.
-
Explain Plan: 옵티마이저가 예측한 실행 계획을 보여줍니다. 비용, 작업, 객체 이름, 카디널리티 등의 정보를 제공합니다.
-
Plan History: 데이터베이스에서 실행된 SQL 쿼리의 실행 계획에 대한 이력을 확인할 수 있습니다.
-
Bind Capture: 데이터베이스에서 실행된 SQL 쿼리에 사용된 바인드 변수를 확인할 수 있습니다. 값은 기본적으로 가려져 있으며, 파라미터 키로 복호화해야 확인할 수 있습니다. Bind Capture 값 확인하기를 참조하세요.
노트실시간 실행된 bind 값이 아닌 데이터베이스에 캡처된 값(
v$sql_bind_capture)입니다. 건수가 많으면 100개까지 표시합니다.
Trend 탭
상단 차트에서 시간대별 Elapsed Time, I/O, Wait Time 추이를 시각화합니다. 하단 통계 테이블은 실행 누적 통계, Wait Class 비율, 주요 Wait Event를 한눈에 비교할 수 있습니다.
Elapsed Time
타임 셀렉터로 선택된 구간 동안의 CPU 사용 시간, Wait Class 소요 시간, Idle 시간 등을 합산하여 표시합니다.
예.
- CPU Time: SQL 실행에 실제 CPU를 사용한 시간
- Scheduler: 세션이 CPU를 기다린 시간
- Idle: 실행되지 않고 대기하거나 유휴 상태인 시간(어떤 항목이 소요 시간이 가장 길었는지 직관적으로 확인할 수 있음)
Elapsed Time Trend
시간대별로 평균 Elapsed Time과 실행 횟수(Execution Count)를 5분 단위로 집계해 추세를 보여줍니다. 3시간 미만이라면 1분 단위로 집계해 보여줍니다.
특정 시점에서 Elapsed Time이 급증했는지, 실행 횟수 대비 응답 시간이 늘었는지 확인할 수 있어 성능 저하 시점을 빠르게 파악하는데 유용합니다.