exemONE Database Oracle 성능 분석
1. 전제 조건
| 항목 | 내용 |
|---|---|
| Oracle 모니터링 권한 | Oracle 모니터링을 위한 DB 계정 권한이 사전에 부여되어 있어야 합니다. |
| 필수 권한 | GRANT CREATE SESSION, GRANT SELECT ANY dictionary, GRANT SELECT_CATALOG_ROLE, GRANT ALTER system |
| AWS RDS 추가 권한 | grant execute on rdsadmin.rdsadmin_util to exemone; |
| db-agent 연결 | Oracle db-agent가 정상 연결(Active) 상태여야 합니다. |
2. Oracle 성능 분석 메뉴 구성
| 메뉴 카테고리 | 서브 메뉴 | 경로 | 최소, 최대 조회 범위 |
|---|---|---|---|
| SQL Analysis | SQL Summary | Performance Analysis > Database > Oracle > SQL Analysis > SQL Summary | toTime 기준 조회, 시분초 사용 불가 |
| SQL Analysis | Top N Analysis | Performance Analysis > Database > Oracle > SQL Analysis > Top N Analysis | 최소 30분, 최대 32일 |
| SQL Analysis | Plan Analysis | Performance Analysis > Database > Oracle > SQL Analysis > Plan Analysis | 최소 30분, 최대 32일 |
| SQL Analysis | Search SQL | Performance Analysis > Database > Oracle > SQL Analysis > Search SQL | 최소 1일, 최대 32일 |
| Wait Analysis | Wait Summary | Performance Analysis > Database > Oracle > Wait Analysis > Wait Summary | 최소 1일, 최대 32일 |
| Session Analysis | Search Session | Performance Analysis > Database > Oracle > Session Analysis > Search Session | 최소 1초, 최대 1 |
| Performance Analysis | Trend Analysis | Performance Analysis > Database > Oracle > Performance Analysis > Trend Analysis | 최소 1일, 최대 90 |
| History Analysis | Parameter History | Performance Analysis > Database > Oracle > Parameter History | toTime=Base Date, fromTime=Compare Date, 시분초 사용 불가 |
| History Analysis | Alert History | Performance Analysis > Database > Oracle > Alert History | 최소 1일, 최대 32일 |
| Dataspace Analysis | Tablespace | Performance Analysis > Database > Oracle > Dataspace Analysis > Tablespace | 최소 1일, 최대 32일 |
| Dataspace Analysis | Undo & Temp | Performance Analysis > Database > Oracle > Dataspace Analysis > Undo & Temp | 최소 1일, 최대 32일 |
3. SQL Analysis
3-1. SQL Summary
메뉴 경로: Performance Analysis > Database > Oracle > SQL Analysis > SQL Summary
개요: 수집된 SQL 통계 정보를 Summary 형태로 보여주는 화면으로, 특정 시점(toTime 기준)의 SQL 수행 현황을 분석합니다.
조회 제한: toTime 기준으로 조회하며, 시/분/초 설정 불가
SQL Summary Grid 항목 (Multi View 실시간 및 Trend Analysis 내 SQL Summary 공통):
| 항목 | 설명 |
|---|---|
| Collect Time | 수집 시각 |
| Schema | Oracle Schema 명 |
| Module | Module 명 |
| SQL ID | Oracle SQL ID (클릭 시 SQL Detail Slide 오픈) |
| SQL Text | 수행된 SQL 쿼리 |
| Plan Hash Value | Oracle Plan Hash Value |
| Elapsed Time (sec) | SQL 응답 시간 (Sum) |
| CPU Time (sec) | SQL CPU Time (Sum) |
| Buffer Gets | SQL Memory I/O (Sum) |
| Disk Reads | SQL Physical I/O (Sum) |
| Rows Processed | 쿼리에 의해 처리된 행 수 |
| Executions | SQL 수행 횟수 (Sum) |
| Ratio (%) | CPU Time과 Elapsed Time의 비율 |
Toggle 기능: 우측 상단 Toggle 버튼을 통해 아래 컬럼을 합계/평균으로 전환 가능
- Elapsed Time (sec), CPU Time (sec), Buffer Gets, Disk Reads, Rows Processed
수집에 사용되는 Oracle View:
| Oracle View | 용도 |
|---|---|
| v$sqlstats | SQL 통계 수집 |
| v$sql | SQL 정보 수집 |
3-2. Top N Analysis
메뉴 경로: Performance Analysis > Database > Oracle > SQL Analysis > Top N Analysis
개요: Stacked Area Chart를 활용하여 특정 기간 동안의 Top SQL을 조회하는 기능입니다.
조회 제한: 최소 30분
Search Panel 항목:
| 항목 | 설명 |
|---|---|
| Reset | 검색 조건을 초기화합니다. |
| Instance | 인스턴스를 선택합니다. |
| Time | 기간 버튼 및 달력 UI를 이용하여 조회 기간 및 시간을 설정합니다. 최소 30분, 최대 32일 |
| Order by | Order By 조건을 선택합니다. (Elapsed Time, CPU Time, Buffer Gets, Disk Reads 등) |
화면 구성:
| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Search Panel | 검색 조건 설정 영역 |
| 2 | Search Result | 검색 패널에서 선택한 조건을 상단에 텍스트로 표시 |
| 3 | Chart | 검색 조건에 따른 일자별 Trend Chart (Stacked Area) |
| 4 | Top SQL | 조회 조건에 맞는 데이터 중 상위 SQL 목록 (최소 20개, 최대 200개 조회 가능) |
주요 수집 Oracle View:
| Oracle View | 용도 |
|---|---|
| v$sqlstats | SQL 통계 수집 |
| v$sql | SQL 정보 수집 |
3-3. Plan Analysis
메뉴 경로: Performance Analysis > Database > Oracle > SQL Analysis > Plan Analysis
개요: Oracle SQL의 실행 계획(Execution Plan)을 분석하는 화면입니다.
조회 제한: 최소 30분
주요 수집 Oracle View:
| Oracle View | 용도 |
|---|---|
| v$sql_plan | 실행 계획 수집 |
| v$sql_plan (SQLPlanDiff) | 실행 계획 변경 이력 비교 |
| v$sql_shared_cursor | SQL 공유 커서 정보 수집 |
| v$sql_bind_capture | SQL 바인드 변수 수집 |
3-4. Search SQL
메뉴 경로: Performance Analysis > Database > Oracle > SQL Analysis > Search SQL
개요: 조건을 지정하여 과거 수행된 SQL을 검색·조회하는 기능입니다.
조회 제한: 최소 1일
4. Wait Analysis
4-1. Wait Summary
메뉴 경로: Performance Analysis > Database > Oracle > Wait Analysis > Wait Summary
개요: Oracle Wait Event 통계를 기간 기준으로 요약·분석하는 화면입니다.
조회 제한: 최소 1일, 시분초 사용 불가
Wait Summary Grid 항목 (Trend Analysis 내 Event Grid 기준):
Wait Class Grid:
| 항목 | 설명 |
|---|---|
| Wait Class | Oracle Wait Class 명 |
| Total Wait Class (sec) | Session 대기 시간 (sec) |
| Total Waits | 해당 Wait Event의 총 대기 횟수 (Sum) |
| Avg Wait Time (sec) | Total Wait Time / Total Waits (sec) |
Event Grid:
| 항목 | 설명 |
|---|---|
| Event Name | Oracle Wait Event 명 |
| Time Waited (sec) | Oracle Wait Event 총 시간 |
| Wait Count | Oracle Wait Event 총 횟수 |
| Time Waited (FG) (sec) | Oracle Foreground Session에서 Wait Event 총 시간 |
| Wait Count (FG) | Oracle Foreground Session에서 Wait Event 총 횟수 |
| Avg Time Waited (sec) | Oracle Wait Event 평균 시간 |
| Avg Time Waited (FG) (sec) | Oracle Foreground Session에서 Wait Event 평균 시간 |
수집에 사용되는 Oracle View:
| Oracle View | 용도 |
|---|---|
| v$system_event | DB Wait Event 통계 수집 |
| v$event_name | Wait Event 명 수집 |
5. Session Analysis
5-1. Search Session
메뉴 경로: Performance Analysis > Database > Oracle > Session Analysis > Search Session
개요: 조건을 지정하여 특정 시점 또는 기간의 Oracle 세션 이력을 검색·조회하는 기능입니다.
조회 제한: 최소 1초
Session Grid 항목:
| 항목 | 설명 |
|---|---|
| Time | 수집된 시각 |
| SID | Session Identifier |
| Serial# | Session Serial Number |
| SPID | Server Process ID |
| Username | Oracle User 명 |
| OS User | OS User 명 |
| Machine | Machine 명 |
| Program | Program 명 |
| Module | Module 명 (DBMS_APPLICATION_INFO.SET_MODULE로 설정한 정보) |
| Last Call ET | SQL 시작 후 현재까지의 수행 시간 |
| PGA Used Mem (MB) | PGA의 현재 크기 (MB) |
| Event | 현재 대기 중인 Wait Event 명 |
| State | Session의 상태 |
| SQL ID | Oracle SQL ID |
| SQL Text | 수행된 SQL 쿼리 |
| Child Number | Oracle SQL Child Number |
| Prev SQL ID | 이전에 수행된 SQL ID |
| Temp Tablespace | Temp 테이블스페이스 명 |
| Sort Usage (MB) | Sort 사용량 (MB) |
| Undo Usage (MB) | Undo 테이블스페이스 사용량 (MB) |
수집에 사용되는 Oracle View:
| Oracle View | 용도 |
|---|---|
| v$session | Active Session 정보 수집 |
| v$sql | SQL 정보 수집 |
| v$sort_usage | Sort 사용량 수집 |
| v$transaction | 트랜잭션 정보 수집 |
| v$process | 프로세스 정보 수집 |
6. Performance Analysis
6-1. Trend Analysis
메뉴 경로: Performance Analysis > Database > Oracle > Performance Analysis > Trend Analysis
개요: 날짜별·시간별 성능 추이를 확인하고, 특정 시점의 정밀한 성능 분석 기능을 제공합니다.
조회 제한: 최소 1일, 시분초 사용 불가 / 기간 설정 최대 범위 2일
기본 뷰 화면 구성:

| 순번 | 항목 | 설명 |
|---|---|---|
| 1 | Search Panel | 버튼 클릭 시 Search Panel을 표시합니다. |
| 2 | Search Result | Search Panel에서 선택한 조건을 상단에 텍스트로 표시합니다. |
| 3 | Trend Chart | 데이터베이스 주요 지표 Trend를 표시하며 주요 성능 지표에 대한 모니터링이 가능합니다. |
| 4 | Grid | Chart에서 클릭한 시점에 수집된 Session, Wait Chains, SQL Summary, Event, Long Session Query 정보를 보여줍니다. |
Search Panel 항목:

| 항목 | 설명 |
|---|---|
| Reset | Search 조건을 초기화합니다. |
| Instance | 인스턴스를 선택합니다. |
| Time | 기간 버튼 및 달력 UI를 이용하여 조회 기간 및 시간을 설정합니다. (최소 1일, 최대 90일) |
Trend Chart:

| 항목 | 설명 |
|---|---|
| Chart | 조회 대상, 기간에 맞춰 Chart를 표시합니다. 마우스 오버 시 Indicator 및 Tooltip 표시 |
| Stat Change | 좌측 상단 각 차트명을 클릭하여 지표를 변경합니다. |
Grid 하위 탭 구성:
6-1-1. Session Tab
클릭 시점에 수집된 Session 정보를 확인합니다.

| 항목 | 설명 |
|---|---|
| Time | 수집된 시각 |
| SID | Session Identifier |
| Serial# | Session Serial Number |
| SPID | Server Process ID |
| Username | Oracle User 명 |
| OS User | OS User 명 |
| Machine | Machine 명 |
| Program | Program 명 |
| Module | Module 명 |
| Last Call ET | SQL 시작 후 현재까지의 수행 시간 |
| PGA Used Mem (MB) | PGA의 현재 크기 (MB) |
| Event | 현재 대기 중인 Wait Event 명 |
| State | Session의 상태 |
| SQL ID | Oracle SQL ID |
| SQL Text | 수행된 SQL 쿼리 |
| Child Number | Oracle SQL Child Number |
| Prev SQL ID | 이전에 수행된 SQL ID |
| Temp Tablespace | Temp 테이블스페이스 명 |
| Sort Usage (MB) | Sort 사용량 (MB) |
| Undo Usage (MB) | Undo 테이블스페이스 사용량 (MB) |
6-1-2. Wait Chains Tab
클릭 시점에 수집된 Wait Chains (Lock 체인) 정보를 확인합니다.

| 항목 | 설명 |
|---|---|
| Time | 발생 시각 |
| Chain Is Cycle | 마지막 차단 Session이 초기 차단 Session에 의해 차단되는지 여부 (TRUE/FALSE) |
| Instance | Instance 명 |
| SID | Session ID |
| Serial# | Session 시리얼 번호 |
| PID | 프로세스 ID |
| OSID | 운영체제(OS) Session ID |
| Blocker Instance | 락을 발생시킨 Session의 Instance 이름 |
| Blocker SID | 락을 발생시킨 Session의 ID |
| Blocker Serial# | 락을 발생시킨 Session의 시리얼 번호 |
| Blocker PID | 락을 발생시킨 Session의 프로세스 ID |
| Blocker OSID | 락을 발생시킨 Session의 OS Session ID |
| Blocker Is Valid | 차단된 Session의 이력 존재 여부 (TRUE/FALSE) |
| In Wait Secs | 차단된 Session이 현재 대기 상태에 있는 시간 (Second) |
| Event | 차단된 Session이 대기 중인 Event 명 |
| Lock Type | Lock을 소유한 Session의 Lock type |
| Lock Mode | Lock을 소유한 Session의 Lock mode |
| Number Waiters | 차단된 Session을 기다리는 Session 수 |
| In Wait | 차단된 Session이 대기 중인지 여부 (TRUE/FALSE) |
| Row Wait OBJ# | Row가 포함된 Object ID |
| SQL ID | Oracle SQL ID |
| Prev SQL ID | 직전에 수행한 SQL 문장의 Oracle SQL_ID |
수집에 사용되는 Oracle View:
| Oracle View | 용도 |
|---|---|
| dba_objects | Wait Chains 오브젝트 정보 |
| v$wait_chains | Wait 체인 정보 수집 |
6-1-3. SQL Summary Tab
드래그한 조회 기간의 SQL Summary 정보를 확인합니다.

| 항목 | 설명 |
|---|---|
| 조회 기간 정보 표기 | Trend Chart에서 드래그한 조회 기간 정보를 Grid 상단에 표기합니다. |
| Toggle | 우측 상단 Toggle 버튼으로 Elapsed Time, CPU Time, Buffer Gets, Disk Reads, Rows Processed를 합계/평균으로 전환합니다. |
Grid 컬럼은 위 3-1 SQL Summary Grid 항목과 동일합니다.
6-1-4. Event Tab
드래그한 조회 기간의 Wait Event 정보를 확인합니다.

Grid 컬럼은 위 4-1 Wait Summary Grid 항목과 동일합니다.
6-1-5. Long Session Query Tab
드래그한 조회 기간의 Long Session Query(장기 수행 쿼리)를 확인합니다.

| 항목 | 설명 |
|---|---|
| Rank | Elapsed Time 기준 순위 |
| SQL Exec Start | 쿼리 실행 시작 시각 |
| SID | Session ID |
| Serial# | Session 일련번호 |
| User Name | Session의 DB User 명 |
| Program | 프로그램 명 |
| Module | Module 명 |
| Elapsed Time (sec) | 쿼리가 수행된 시간 (sec) |
| CPU Time (sec) | CPU 사용 시간 |
| SQL ID | 수행된 SQL의 고유 식별자 (클릭 시 SQL Detail Slide 오픈) |
| SQL Text | 수행된 SQL 쿼리 |
7. History Analysis
7-1. Parameter History
메뉴 경로: Performance Analysis > Database > Oracle > Parameter History
개요: Oracle 파라미터 변경 이력을 조회하여 특정 시점의 파라미터 값을 비교·분석하는 기능입니다.
조회 제한: toTime = Base Date(기준 날짜), fromTime = Compare Date(비교 날짜)로 사용하며, 시분초 사용 불가
수집에 사용되는 Oracle View:
| Oracle View | 용도 |
|---|---|
| v$parameter | Oracle 파라미터 정보 수집 |
7-2. Alert History
메뉴 경로: Performance Analysis > Database > Oracle > Alert History
개요: Oracle 인스턴스에서 발생한 Alert 이력을 조회하는 기능입니다.
조회 제한: 최소 7일, 시분초 사용 불가
8. Dataspace Analysis
8-1. Tablespace
메뉴 경로: Performance Analysis > Database > Oracle > Dataspace Analysis > Tablespace
개요: Oracle 테이블스페이스의 사용 현황 및 추이를 분석하는 기능입니다.
조회 제한: 최소 1일, 시분초 사용 불가
수집에 사용되는 Oracle View:
| Oracle View | 용도 |
|---|---|
| dba_free_space | 테이블스페이스 여유 공간 수집 |
| dba_data_files | 데이터 파일 정보 수집 |
알람 연계:
- Tablespace 지표는
Setting > Alert > User Alert > Create Rule에서 Table 타입 알람으로 등록 가능합니다. - 알람 등록 지표명:
Oracle Tablespace
8-2. Undo & Temp
메뉴 경로: Performance Analysis > Database > Oracle > Dataspace Analysis > Undo & Temp
개요: Oracle Undo 세그먼트 및 Temp 테이블스페이스의 사용 현황을 분석하는 기능입니다.
조회 제한: 최소 1일, 시분초 사용 불가
수집에 사용되는 Oracle View:
| 구분 | Oracle View | 용도 |
|---|---|---|
| Undo | dba_undo_extents | Undo 익스텐트 정보 수집 |
| Undo | dba_data_files | 데이터 파일 정보 수집 |
| Undo | dba_rollback_segs | Rollback 세그먼트 정보 수집 |
| Temp | v$sort_segment | Sort 세그먼트 정보 수집 |
| Temp | dba_tablespaces | 테이블스페이스 정보 수집 |
| Temp | dba_temp_files | Temp 파일 정보 수집 |
9. 주의사항 / 참고
| 항목 | 내용 |
|---|---|
| 조회 범위 제한 | 각 화면별 최소 조회 범위가 다르므로 조회 시간 설정 시 주의가 필요합니다. |
| Parameter History 날짜 설정 | toTime = Base Date(기준 날짜), fromTime = Compare Date(비교 날짜)로 동작합니다. 시분초 설정 불가입니다. |
| Alert History 조회 제한 | 최소 7일 이상의 기간이 필요합니다. |
| 조회 범위 보정 | 최소 조회 범위보다 작은 기간이 입력되면, 최소 범위에 맞게 기간이 자동 보정되어 조회됩니다. |
참고 문서: