exemONE PostgreSQL Database 성능 분석
메뉴 경로: Performance Analysis > Database PostgreSQL
PostgreSQL Database의 성능 문제를 SQL, Session, Performance, DataSpace 관점에서 심층 분석할 수 있는 메뉴입니다.
SQL Analysis
특정 기간 동안 수행된 SQL의 통계정보, 수행 이력, 실행 계획을 Top-N Analysis와 Search SQL 두 가지 관점에서 분석하는 메뉴입니다.
1. Top-N Analysis
메뉴 경로: Performance Analysis > Database PostgreSQL > SQL Analysis > Top-N Analysis
Stacked Area Chart를 활용하여 특정 기간 동안의 Top SQL을 조회하는 기능을 제공합니다.

| 순번 | 항목 | 상세 설명 및 역할 |
|---|---|---|
| 1 | Search | 조회 기간, 인스턴스 그룹, 인스턴스, 데이터베이스, Group by, Order by, Top SQL 수를 지정하여 검색합니다. |
| 2 | Chart | 검색 조건에 따른 일자별 Trend Chart를 표시합니다. |
| 3 | Top User | Group By = User 선택 시 상위 5건의 User 정보를 표시합니다. |
| 4 | Top Database | Group By = Database 선택 시 상위 5건의 Database 정보를 표시합니다. |
| 5 | Top SQL | Group By 조건에 따라 상위 10건 또는 20건을 Order By 기준 내림차순으로 정렬하여 표시합니다. 최상단 행이 자동으로 선택됩니다. |
1-1. Top-N SQL Grid 항목

| 항목 | 상세 설명 및 역할 |
|---|---|
| Rank | 순위 |
| User Name | 쿼리를 실행한 사용자 이름 |
| Database Name | 쿼리가 실행된 데이터베이스 이름 |
| SQL ID | SQL 고유 식별자 (클릭 시 SQL Detail Slide 오픈) |
| Query ID | 쿼리 ID |
| SQL Text | 쿼리 텍스트 |
| Calls | 실행 횟수 변화량 |
| Shared Blks Hit | Shared block 캐시 hit 수 변화량 |
| Shared Blks Hit (Avg) | Shared block 캐시 hit 수 평균 변화량 (Shared Blks Hit / Calls) |
| Shared Blks Read | 명령문에서 읽은 총 shared block 수 변화량 |
| Shared Blks Read (Avg) | 명령문에서 읽은 총 shared block 수 평균 변화량 (Shared Blks Read / Calls) |
| Temp Blks Read | 명령문에서 읽은 총 임시 테이블·파일 수 변화량 |
| Temp Blks Read (Avg) | 임시 테이블·파일 수 평균 변화량 |
| Disk Blks Read | 읽은 disk block 수 변화량 (Shared + Local + Temp Blks Read) |
| Disk Blks Written | 쓴 disk block 수 변화량 (Shared + Local + Temp Blks Written) |
| Total Time (sec) | 명령문 실행에 소요된 총 시간 (초) |
| Total Time (sec)(Avg) | 명령문 실행에 소요된 총 시간 (초) 평균 |
| Mean Time (sec) | 명령문 실행에 소요된 평균 시간 (초) |
| Max Time (sec) | 명령문 실행에 소요된 최대 시간 (초) |
| Max Time Delta | 명령문 실행에 소요된 최대 시간 변화량 (초) |
| Ratio (%) | 명령문 실행에 소요된 총 시간 비율 (%) |
1-2. Top User / Top Database Grid 항목
Group By = User 선택 시 Top User Grid, Group By = Database 선택 시 Top Database Grid가 추가로 표시됩니다.


| 항목 | 상세 설명 및 역할 |
|---|---|
| Rank | 순위 |
| User Name / Database Name | 사용자 이름 또는 데이터베이스 이름 |
| Calls | 실행 횟수 변화량 |
| Shared Blks Hit | Shared block 캐시 hit 수 변화량 |
| Shared Blks Read | 읽은 총 shared block 수 변화량 |
| Temp Read | 읽은 총 임시 테이블·파일 수 변화량 |
| Total Time (sec) | 총 실행 시간 (초) |
| Disk Blks Written | 쓴 disk block 수 변화량 |
| Calls (%) / Shared Blks Hit (%) 외 | 전체 대비 각 항목의 비율 |
2. Search SQL
메뉴 경로: Performance Analysis > Database PostgreSQL > SQL Analysis > Search SQL
특정 SQL의 통계정보와 과거 수행 이력을 확인하는 화면입니다.

| 순번 | 항목 | 상세 설명 및 역할 |
|---|---|---|
| 1 | Search | 조회 기간, 인스턴스 그룹, 인스턴스, 데이터베이스, Option(Database Name, SQL ID, Query ID, SQL Text)을 지정하여 검색합니다. |
| 2 | Search SQL List | 선택한 조건에 맞는 SQL 목록을 표시합니다. Total Time 기준 Top-1 SQL이 자동으로 선택됩니다. |
| 3 | Trend | SQL 목록에서 선택한 SQL의 Time / Blocks / Calls 3가지 주요 지표를 차트로 표시합니다. |
| 4 | History | 선택한 SQL의 수행 이력 및 상세 정보를 표시합니다. |
| 5 | Full Text | 선택한 SQL의 전체 텍스트를 표시합니다. |
| 6 | Plan | 선택한 SQL의 Plan 정보를 표시합니다. |
2-1. Search SQL List Grid 항목

| 항목 | 상세 설명 및 역할 |
|---|---|
| No | 순번 |
| User Name | 사용자 이름 |
| Database Name | 데이터베이스 이름 |
| SQL ID (Query ID) | Query ID |
| SQL Text | SQL Text |
| Calls | 총 실행 횟수 |
| Total Time (sec) | 총 수행시간 (초) |
| Shared Blocks Hit | 메모리에서 읽은 총 shared block 수 |
| Local Blocks Hit | 메모리에서 읽은 총 temp table/index block 수 |
| Shared Blocks Read | 디스크에서 읽은 총 shared block 수 |
| Local Blocks Read | 디스크에서 읽은 총 temp Table/Index block 수 |
| Temp Blocks Read | 디스크에서 읽은 총 temp block 수 |
| Shared Blocks Written | 디스크에 쓴 총 shared block 수 |
| Local Blocks Written | 디스크에 쓴 총 temp table/index block 수 |
| Temp Blocks Written | 디스크에 쓴 총 temp block 수 |
| Rows | 해당 SQL로 출력 또는 영향을 받은 row 수 |
| Block Read Time (sec) | Block을 읽는 데 걸린 총 시간 (초) |
| Block Write Time (sec) | Block을 쓰는 데 걸린 총 시간 (초) |
| Max Execution Time | 실행에 소요된 최대 시간 (초) |
| Min Execution Time | 실행에 소요된 최소 시간 (초) |
2-2. Plan Grid 항목
| 항목 | 상세 설명 및 역할 |
|---|---|
| # | 단위 SELECT 쿼리별로 부여되는 식별자 값 |
| Query Plan | 통계정보를 기반으로 옵티마이저가 수립하는 작업 절차 |
3. 주의사항 및 참고
- ⚠️ 주의: Top-N Analysis의 조회 기간은 최대 31일, 최소 30분입니다.
- ⚠️ 주의: Search SQL의 조회 기간은 최대 12일, 최소 30분입니다.
- 💡 참고: Search SQL List에서 다른 SQL을 클릭하면 Trend 영역의 값이 함께 변경되며, 선택한 SQL ID 값이 History 영역 하단에 출력됩니다. 우측 상단 Toggle 버튼으로 합계/평균 전환이 가능합니다.
Session Analysis
메뉴 경로: Performance Analysis > Database PostgreSQL > Session Analysis > Search Session
조건 입력을 통해 원하는 세션 값을 제공하며, 5초 단위로 세션 정보를 필터링하여 특정 시점의 세션 성능 문제를 분석하는 메뉴입니다.
1. Search Session

| 순번 | 항목 | 상세 설명 및 역할 |
|---|---|---|
| 1 | Search | 조회 기간, 인스턴스 그룹, 인스턴스, 데이터베이스, Option(PID, User Name, Database Name, App Name, Client Address, Wait Event, Wait Event Type, Query Start, SQL Text)을 지정하여 검색합니다. |
| 2 | Search Session List | 조회 조건에 맞는 데이터를 Grid 형식으로 표시합니다. |
1-1. Search Session List Grid 항목
| 항목 | 상세 설명 및 역할 |
|---|---|
| Time | Backend Session이 수집된 시간 |
| PID | Backend Process ID |
| User Name | 사용자 이름 |
| Database Name | 데이터베이스 이름 |
| App Name | 애플리케이션 이름 |
| Client Address | Client 주소 |
| Client Host Name | Client 호스트 이름 |
| Backend Start | Backend Process가 시작된 시간 |
| SQL ID (Query ID) | SQL 고유 식별자 (클릭 시 SQL Detail Slide 오픈) |
| Elapsed Time (sec) | SQL 실행시간 (초) |
| SQL Text | SQL Text |
| Wait Event | Backend Process가 대기한 이벤트 |
| Wait Event Type | Backend Process가 대기한 이벤트 유형 |
| State | Backend Process 상태 |
| Xact Start | 트랜잭션 시작 시간 |
| Query Start | Query 시작 시간 |
2. 주의사항 및 참고
- ⚠️ 주의: Search Session의 조회 기간은 최대 1일, 최소 1초입니다.
- 💡 참고: PID 클릭 시 Session Detail Slide가 열리며, 해당 Session의 Active Session History 및 SQL Plan을 상세히 확인할 수 있습니다.
Performance Analysis
날짜별·시간별 성능 추이 확인과 Parameter 변경 이력 비교를 통해 특정 시점의 정밀한 성능 분석 기능을 제공하는 메뉴입니다.
Performance Analysis는 Trend Analysis와 Parameter History 두 가지 하위 메뉴로 구성됩니다.
1. Trend Analysis
메뉴 경로: Performance Analysis > Database PostgreSQL > Performance Analysis > Trend Analysis
날짜별·시간별 성능 추이를 확인하고, 특정 시점의 정밀한 성능 분석 기능을 제공합니다.

| 순번 | 항목 | 상세 설명 및 역할 |
|---|---|---|
| 1 | Search | 조회 기간, 인스턴스 그룹, 인스턴스, 데이터베이스를 지정하여 검색합니다. |
| 2 | Trend Chart | 데이터베이스 주요 지표 Trend를 표시합니다. 차트명 우측 상단 아이콘 클릭 시 Stat Change 팝업에서 지표를 변경할 수 있습니다. |
| 3 | Grid | Chart에서 클릭 또는 드래그한 시점에 수집된 Backends, Lock Tree, Vacuum, Top SQL, Scan Ratio, Top Object, Top Event, Long Active Backends, Application Ratio, User Ratio, Alert 정보를 표시합니다. |
1-1. Grid 하위 탭 구성

| 탭 | 상세 설명 및 역할 |
|---|---|
| Backends | 클릭 시점에 수집된 Backend 세션 목록 (PID, Username, Database Name, App Name, Elapsed Time, SQL Text, Wait Event, State 등)을 표시합니다. |
| Lock Tree | 클릭 시점의 Lock 상태 세션 목록 (Collect Time, PID, Lock Status, Holder PID, Statement, Elapsed Time, Query Start 등)을 표시합니다. |
| Vacuum | 클릭 시점의 Vacuum 상태 세션 목록 (PID, User Name, Database Name, App Name, Elapsed Time(sec), SQL Text 등)을 표시합니다. |
| Top SQL | 클릭 시점의 Top SQL 통계 (SQL ID, Calls, Shared Blks Hit, Shared Blks Read, Mean Time, Total Execution Time 등)를 Order By 조건 선택에 따라 표시합니다. |
| Scan Ratio | 클릭 시점의 Object별 Full Scan 횟수와 Index Scan 대비 Full Scan 비율을 표시합니다. |
| Top Object | 클릭 시점의 Object 정보 (Object Name, Object Type, Total Size, Diff Size, Age(Current))를 표시합니다. |
| Top Event | 클릭 시점에 수집된 Wait Event의 이름(Event Name), 발생 횟수(Count), 발생 비율(Ratio)을 표시합니다. |
| Long Active Backends | 클릭 시점의 Long Running Query 목록 (PID, User Name, Application Name, Query, Elapsed Time, Query Start Time, Query Last Time)을 표시합니다. |
| Application Ratio | 클릭 시점의 Application 이름별 세션 스냅샷 수(Count), 총 수행시간, Elapsed Ratio를 표시합니다. |
| User Ratio | 클릭 시점의 User 이름별 세션 스냅샷 수(Count), 총 수행시간, Elapsed Ratio를 표시합니다. |
| Alert | 클릭 시점의 Alert 목록 (Time, Alert Type, Alert Name, Level, Value, Description)을 표시합니다. |
2. Parameter History
메뉴 경로: Performance Analysis > Database PostgreSQL > Performance Analysis > Parameter History
장애 시점과 정상 시점의 파라미터를 비교하여 Parameter 변경이 성능 저하 원인인지 분석하는 화면입니다.

| 순번 | 항목 | 상세 설명 및 역할 |
|---|---|---|
| 1 | Search | 조회 기간, 인스턴스 그룹, 인스턴스, 데이터베이스를 지정하여 검색합니다. |
| 2 | Parameter List Search | Parameter Name 컬럼 기준으로 검색합니다. |
| 3 | Parameter List | Base Date와 Compare Date의 파라미터를 비교하여 변경된 파라미터를 Status(Changed 값) 에 표시합니다. |
2-1. Parameter List Grid 항목
| 항목 | 상세 설명 및 역할 |
|---|---|
| Parameter Name | Parameter 명 (클릭 시 Parameter Detail Slide 오픈) |
| Base Date | 검색 조건에서 설정한 기준 날짜의 값 |
| Compare Date | 검색 조건에서 설정한 비교 날짜의 값 |
| Status | 값 변경 여부 (-: 변동 없음 / Changed: 변경됨) |
3. 주의사항 및 참고
- ⚠️ 주의: Trend Analysis의 조회 기간이 2일 이상인 경우 하단 탭 데이터 조회에 제한이 있습니다.
- ⚠️ 주의: Parameter History에서 Base Date와 Compare Date를 동일한 날짜로 설정하면 비교가 불가합니다.
- 💡 참고: Trend Analysis에서 차트를 드래그하면 해당 구간의 데이터를 하단 Grid에서 확인할 수 있어 장애 시간대 분석에 유용합니다.
DataSpace Analysis
메뉴 경로: Performance Analysis > Database PostgreSQL > DataSpace Analysis > Object Size
데이터베이스 및 오브젝트의 사용량을 확인하고 특정 날짜 비교 분석이 가능하며, 특정 오브젝트에 대해 일자별 추이를 확인하는 메뉴입니다.
1. Object Size

| 순번 | 항목 | 상세 설명 및 역할 |
|---|---|---|
| 1 | Search | 조회 기간, 인스턴스 그룹, 인스턴스, 데이터베이스, Option(Object Name)을 지정하여 검색합니다. |
| 2 | Tab | Option(Object Name)항목에서 선택한 조건에 따라 Database / Object 탭이 나타납니다. |
| 3 | Database Size Trend | 일자별로 Database / Object의 사용량(Used Size) 및 여유 공간(Free Size) 추이를 제공합니다. |
| 4 | Database Size Info | 분석 구간의 처음과 마지막 날짜가 자동으로 선택되며, Database / Object별 사이즈 추이와 변화량을 제공합니다. |
| 5 | Top-30 Object | 전체 Database / Object 기준 Top-30 Object 정보를 출력합니다. 우측 상단 라디오 버튼으로 정렬 기준을 선택합니다. |
1-1. Database Size Trend

| 항목 | 상세 설명 및 역할 |
|---|---|
| Database Size Trend | 선택된 인스턴스·오브젝트에 따라 일자별 사용량(Used Size) 및 여유 공간(Free Size) 추이를 제공합니다. |
| Date 명칭 | 조회 기간이 1일 이하이면 Start Time / End Time, 2일 이상이면 Start Date / End Date로 표시됩니다. |
1-2. Database Size Info Grid 항목

| 항목 | 상세 설명 및 역할 |
|---|---|
| Database Name | 데이터베이스 이름 |
| Start Time Size | 조회 기간 중 처음 일자의 Database Size |
| End Time Size | 조회 기간 중 마지막 일자의 Database Size |
| Diff Size | 마지막 일자와 처음 일자 간의 Database Size 변화량 (End Size – Start Size) |
1-3. Top-30 Object Grid 항목

| 항목 | 상세 설명 및 역할 |
|---|---|
| Rank | 순위 |
| Database Name | 데이터베이스 이름 |
| Object Name | Object 이름 (클릭 시 Object Detail Slide 오픈) |
| All Size | Object의 총 Size |
| Data Size | Object의 Data Size |
| Index Size | Object의 Index Size |
- Top-30 Object 정렬 기준 (라디오 버튼)
| 정렬 기준 | 설명 |
|---|---|
| Start All Size | 처음 일자 기준 총 사이즈 내림차순 |
| End All Size | 마지막 일자 기준 총 사이즈 내림차순 |
| Diff All Size | 변화량 기준 내림차순 |
1-4. Object Detail Slide
Object Name 클릭 시 Object Detail Slide가 열립니다.

| 순번 | 항목 | 상세 설명 및 역할 |
|---|---|---|
| 1 | Title | Top-30 Object에서 클릭한 오브젝트의 이름을 표시합니다. |
| 2 | Close | 클릭 시 Detail Slide가 닫힙니다. |
| 3 | Object Information | 오브젝트 Value별 차트를 표시합니다. (Age, Dead/Live Tuples, Table/Index Size, Scan Count 등 다양한 지표 선택 가능) |
| 4 | Object History | 오브젝트 데이터를 1시간 간격으로 표시합니다. |
2. 주의사항 및 참고
- ⚠️ 주의: DataSpace Analysis의 조회 기간은 최대 32일, 최소 1일입니다.
- 💡 참고: Object Name을 All로 선택하면 Database 탭만 제공되며, 특정 오브젝트를 선택해야 Object 탭이 함께 나타납니다.
- 💡 참고: Database Size Info에서 특정 행을 클릭하면 Top-30 Object의 값이 해당 DB 기준으로 변경됩니다.
참고 문서:
- Performance Analysis_Database PostgreSQL 개편_SQL Analysis_Top-N Analysis
- Performance Analysis_Database PostgreSQL 개편_SQL Analysis_Search SQL
- Performance Analysis_Database PostgreSQL 개편_Session Analysis_Search Session
- Performance Analysis_Database PostgreSQL 개편_Performance Analysis_Trend Analysis
- Performance Analysis_Database PostgreSQL 개편_Performance Analysis_Parameter History
- Performance Analysis_Database PostgreSQL 개편_DataSpace Analysis_Object Size
- Database_PostgreSQL_PostgreSQL 클러스터인스턴스 모니터링