본문으로 건너뛰기

exemONE PostgreSQL Database 성능 분석

1. PostgreSQL 성능 분석 메뉴 구성

메뉴 카테고리서브 메뉴경로최소, 최대 조회 범위
SQL AnalysisTop N AnalysisPerformance Analysis > Database > PostgreSQL > SQL Analysis > Top N Analysis최소 30분, 최대 32일
SQL AnalysisSearch SQLPerformance Analysis > Database > PostgreSQL > SQL Analysis > Search SQL최소 1일, 최대 32일
Session AnalysisSearch SessionPerformance Analysis > Database > PostgreSQL > Session Analysis > Search Session최소 1초, 최대 1일
Performance AnalysisTrend AnalysisPerformance Analysis > Database > PostgreSQL > Performance Analysis > Trend Analysis최소 1일, 최대 90일
History AnalysisParameter HistoryPerformance Analysis > Database > PostgreSQL > Parameter HistorytoTime = Base Date, fromTime = Compare Date, 시분초 사용 불가
Dataspace AnalysisObject SizePerformance Analysis > Database > PostgreSQL > Dataspace Analysis > Object Size최소 1일, 최대 32일

2. SQL Analysis

2-1. Top N Analysis

개요: Stacked Area Chart를 활용하여 특정 기간 동안의 Top SQL을 조회하는 기능입니다.

기본 뷰 화면 구성:

순번항목설명
1Search Panel버튼 클릭 시 Search Panel을 표시합니다.
2Search ResultSearch Panel에서 선택한 조건을 상단에 텍스트로 표시합니다.
3Chart검색 조건에 따른 일자별 Trend Chart(Stacked Area)를 보여줍니다.
4Top-5 UserGroup By = User 선택 시 상위 5건을 보여줍니다.
5Top-N SQLGroup By 조건에 따라 상위 SQL 목록을 보여줍니다.

Search Panel 항목:

항목설명
Reset검색 조건을 초기화합니다.
Instance인스턴스를 선택합니다.
Time기간 버튼 및 달력 UI를 이용하여 조회 기간 및 시간을 설정합니다. 최소 30분, 최대 32일
Group ByQuery ID (Default) / User / Database 중 선택합니다.
Order ByTotal Time (Default) / Shared Blks Hit / Call / Shared Blks Read / Temp Read / Disk Blks Written 중 선택합니다.
Top최소 1, 최대 300

Top-N SQL Grid 항목:

항목설명
Rank순위
Database Name쿼리가 실행된 데이터베이스
User Name쿼리를 실행한 사용자 이름
SQL IDSQL ID (클릭 시 SQL Detail Slide 오픈)
Query쿼리 텍스트
Calls실행 횟수 변화량
Shared Blks Hitshared block 캐시 hit 수 변화량
Shared Blks Hit (Avg)shared block 캐시 hit 수 평균 변화량 (Shared Blks Hit / Calls)
Shared Blks Read읽은 총 shared block 수 변화량
Shared Blks Read (Avg)읽은 총 shared block 수 평균 변화량
Temp Read읽은 총 임시 테이블, 파일 수 변화량 (local_blks_read + temp_blks_read)
Temp Read (Avg)임시 테이블과 파일 수 평균 변화량 (Temp Read / Calls)
Disk Blks Written쓴 disk block 수 변화량 (Shared + Local + Temp Blks Written)
Total Time (sec)명령문 실행에 소요된 총 시간 (초)
Mean Time (sec)명령문 실행에 소요된 평균 시간 (초)
Max Time (sec)명령문 실행에 소요된 최대 시간 (초)
Max Time Delta명령문 실행에 소요된 최대 시간 변화량 (초)
Ratio (%)명령문 실행에 소요된 총 시간 비율 (%)

Top-5 User Grid 항목 (Group By = User 선택 시):

항목설명
Rank순위
User Name쿼리를 실행한 사용자 이름
Calls실행 횟수 변화량
Shared Blks Hitshared block 캐시 hit 수 변화량
Shared Blks Read읽은 총 shared block 수 변화량
Temp Read읽은 임시 테이블, 파일 수 변화량
Total Time (sec)실행에 소요된 총 시간
Disk Blks Written쓴 disk block 수 변화량
Calls (%)사용자가 실행한 쿼리의 Calls 비율
Total Time (%)사용자가 실행한 쿼리의 Total Time 비율

2-2. Search SQL

개요: 조건을 지정하여 과거 수행된 SQL을 검색·조회하는 기능입니다.


3. Session Analysis

3-1. Search Session

개요: 조건 입력을 통해 사용자가 원하는 세션 값을 제공하며, 5초 단위로 세션 정보를 필터링하여 특정 시점의 세션 성능 문제를 분석하는 화면입니다.

기본 뷰 화면 구성:

순번항목설명
1Search Panel버튼 클릭 시 Search Panel을 표시합니다.
2Search ResultSearch Panel에서 선택한 조건을 상단에 텍스트로 표시합니다.
3Search Session List조회 조건에 맞는 데이터가 Grid 형식으로 표현됩니다.

Search Panel 상세:

순번항목설명
1Reset검색 조건을 초기화합니다.
2Instance인스턴스를 선택합니다.
3Time기간 버튼 및 달력 UI를 이용하여 조회 기간 및 시간을 설정합니다. Yesterday: 조회 기간을 어제로 설정 / Today: 조회 일자를 오늘로 설정. 최소 1초, 최대 1일
4Filters검색 조건을 입력합니다. (PID, User Name, Database Name, App Name, Client Address, SQL Text, Wait Event, Wait Event Type, Query Start)

Grid 항목:

순번항목설명
1TimeBackend Session이 수집된 시간
2PIDBackend Process ID
3User Name사용자 이름
4Database Name데이터베이스 이름
5App NameAPP 이름
6Client AddressClient 주소
7Client Host NameClient Host 이름
8Backend StartBackend Process가 시작된 시간
9SQL ID(Query ID)SQL ID (클릭 시 SQL Detail Slide 오픈)
10Elapsed Time (sec)SQL 실행시간
11SQL TextSQL Text
12Wait EventBackend Process가 대기한 이벤트
13Wait Event TypeBackend Process가 대기한 이벤트 유형
14StateBackend Process 상태
15Xact Start트랜잭션 시작 시간
16Query StartQuery 시작 시간
17State Change상태가 변경된 시간

4. Performance Analysis

4-1. Trend Analysis

기본 뷰 화면 구성:

순번항목설명
1Search Panel버튼 클릭 시 Search Panel을 표시합니다.
2Search ResultSearch Panel에서 선택한 조건을 상단에 텍스트로 표시합니다.
3Trend Chart데이터베이스 주요 지표 Trend를 표시하며 주요 성능 지표에 대한 모니터링이 가능합니다.
4GridChart에서 클릭 시점에 수집된 Backends, Lock Tree, Top SQL, Scan Ratio, Top Object, Top Event, Long Active Backends, Application Ratio, User Ratio, Alert 정보를 보여줍니다.

Search Panel 항목:

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

Trend Chart:

항목설명
Chart조회 대상, 기간에 맞춰 차트를 표시합니다. 마우스 오버 시 Indicator 및 Tooltip 표시
Stat Change각 차트 명 우측 상단 아이콘을 클릭하여 지표를 변경합니다.

Grid 하위 탭 구성:

1) Backends Tab

클릭 시점에 수집된 Backends 정보를 확인합니다.

항목설명
PIDBackend Process ID
Username사용자 이름
Database Name데이터베이스 이름
App NameAPP 이름
Client AddressClient 주소
Client Host NameClient Host 이름
Backend StartBackend Process가 시작된 시간
Elapsed Time (sec)SQL 실행시간
SQL TextSQL Text
Wait EventBackend Process가 대기한 이벤트
Wait Event TypeBackend Process가 대기한 이벤트 유형
StateBackend Process 상태
Xact Start트랜잭션 시작 시간
Query StartQuery 시작 시간
State Change상태가 변경된 시간

2) Lock Tree Tab

클릭 시점에 수집된 Lock Tree 정보를 확인합니다.

항목설명
Collect TimeBackend Process가 수집된 시간
PIDBackend 프로세스 ID
Lock StatusLock 상태
Holder PIDHolder의 PID
User Name사용자 이름
Database Name데이터베이스 이름
Statement수행 쿼리
Elapsed Time (sec)SQL 실행시간(초)
Query Start쿼리가 시작된 시간 (비활성화 상태인 경우 마지막 쿼리가 시작된 시간)

3) Top SQL Tab

드래그한 조회 기간의 Top SQL 정보를 확인합니다.

Order By 조건: Calls / Mean Time / Shared Blks Hit / Shared Blks Read / Total Execution Time / Disk Blks Written

항목설명
Rank순위
SQL IDSQL ID
User Name사용자 이름
Database Name데이터베이스 이름
Query수행 쿼리
Calls실행 횟수
Shared Blks Hit메모리에서 읽은 총 shared block 수
Shared Blks ReadDisk에서 읽은 총 shared block 수
Disk Blks WrittenDisk에 쓴 총 block 수 (Shared + Local + Temp Blks Written)
Mean Time (sec)실행에 소요된 평균 시간 (초)
Total Execution Time (sec)총 수행시간(초)

4) Scan Ratio Tab

클릭 시점에 수집된 Scan Ratio 정보를 확인합니다.

Order By 조건: Object Name / Object Type

항목설명
Rank순위
Database Name데이터베이스 이름
Schema Name스키마 이름
Object NameObject 이름
Object TypeObject 유형
Total SizeObject의 총 사이즈
Diff SizeObject의 총 사이즈 변화량
ScanObject를 full scan한 횟수
Scan RatioIndex scan 대비 full scan 횟수 비율

5) Top Object Tab

클릭 시점에 수집된 Top Object 정보를 확인합니다.

항목설명
Rank순위
Database Name데이터베이스 이름
Object Name오브젝트 이름 (클릭 시 오브젝트 디테일 창으로 연계)
Object Type오브젝트 타입: Table, Index
Total Size총 사이즈
Diff Size사이즈 변화량
Age(Current)최근 age

6) Top Event Tab

클릭 시점에 수집된 Top Event 정보를 확인합니다.

항목설명
Rank순위
Event NameEvent 이름
CountEvent 발생 횟수
RatioEvent 발생 비율

7) Long Active Backends Tab

클릭 시점에 수집된 Long Active Backends(장기 수행 쿼리) 정보를 확인합니다.

항목설명
Rank순위
PIDBackend Process ID
User Name사용자 이름
Database Name데이터베이스 이름
Application NameApplication 이름
QuerySQL Text
Elapsed Time (sec)총 수행시간(초)
Query Start TimeQuery가 시작된 시간
Query Last TimeQuery가 마지막 실행된 시점의 시간

8) Application Ratio Tab

클릭 시점에 수집된 Application Ratio 정보를 확인합니다.

항목설명
Rank순위
Application NameApplication 이름
Count해당 application 이름으로 수집된 세션 스냅샷 수
Elapsed Time (sec)총 수행시간(초)
Elapsed Ratio전체 application 총 수행시간 대비 해당 application 총 수행시간 비율

9) User Ratio Tab

클릭 시점에 수집된 User Ratio 정보를 확인합니다.

항목설명
Rank순위
User Name사용자 이름
Count해당 user 이름으로 수집된 세션 스냅샷 수
Elapsed Time (sec)총 수행시간(초)
Elapsed Ratio전체 user 총 수행시간 대비 해당 user 총 수행시간 비율

10) Alert Tab

클릭 시점에 수집된 Alert 정보를 확인합니다.

항목설명
Time데이터가 수집된 시간
Alert TypeAlert 유형
Alert NameAlert 이름
LevelAlert Level
ValueAlert 값
DescriptionAlert 설명

5. History Analysis

5-1. Parameter History

메뉴 경로: Performance Analysis > Database > PostgreSQL > Parameter History

개요: 파라미터 조회를 통해 장애 시점과 정상 시점의 파라미터 비교 분석이 가능합니다. 특정 파라미터의 변경 이력 등 상세 히스토리를 확인할 수 있으며, 장애 발생 시 효과적인 분석이 가능합니다.

조회 제한: Base Date(기준 날짜) vs Compare Date(비교 날짜) 비교 방식, 시분초 사용 불가. 동일 날짜 비교 불가

기본 뷰 화면 구성:

순번항목설명
1Search Panel버튼 클릭 시 Search Panel을 표시합니다.
2Search ResultSearch Panel에서 선택한 조건을 상단에 텍스트로 표시합니다.
3Parameter List Search파라미터 목록의 Parameter Name 컬럼 기준 검색이 가능합니다.
4Parameter List기준 날짜와 비교 날짜의 파라미터를 비교했을 때 변경된 파라미터는 파란색(True)으로 표시하여 보여줍니다.

Search Panel 상세:

순번항목설명
1Reset검색 조건을 초기화합니다.
2Instance인스턴스를 선택합니다.
3Base Date파라미터 현황 확인을 위한 기준 날짜를 선택합니다. 선택한 날짜 기준 마지막 시점의 값을 보여줍니다. 당일 날짜 조회 시 현재까지 수집된 데이터 중 마지막 시점의 값이 출력됩니다.
4Compare Date파라미터 현황 확인을 위한 비교 날짜를 선택합니다. 선택한 날짜 기준 마지막 시점의 값을 보여줍니다. Base Date와 동일한 날짜로 선택하여 비교할 수 없습니다.
5FiltersParameter Name (대소문자 구분 없이 일부 일치 검색 가능) / Different: True(변경된 파라미터만 조회) / False(수집된 모든 파라미터 조회). True, False 체크박스는 모두 기본 선택됩니다.

Parameter List:

변경된 파라미터는 파란색(True)으로 표시하여 상단에 출력합니다.

Grid 항목:

순번항목설명
1Parameter NameParameter 명 (클릭 시 Parameter Detail Slide 오픈)
2Base Date검색 조건에서 설정한 기준 날짜의 파라미터 값
3Compare Date검색 조건에서 설정한 비교 날짜의 파라미터 값
4Different기준 날짜 대비 비교 날짜의 값 차이 (False: 변동 없음 / True: 변경됨)

6. Dataspace Analysis

6-1. Object Size

메뉴 경로: Performance Analysis > Database > PostgreSQL > Dataspace Analysis > Object Size

개요: 데이터베이스, 오브젝트에 대한 사용량을 확인하고 특정 날짜에 대해서 비교 분석이 가능합니다. 특정 오브젝트에 대해 일자별 추이를 확인할 수 있습니다.

조회 제한: 최소 1일, 최대 32일, 시분초 설정 불가

기본 뷰 화면 구성:

순번항목설명
1Search Panel버튼 클릭 시 Search Panel을 표시합니다.
2Search ResultSearch Panel에서 선택한 조건을 상단에 텍스트로 표시합니다.
3TabSearch Panel 인스턴스 항목에서 선택한 조건에 따라 Database / Object 탭이 나타납니다.
4Database Size Trend일자별로 Database / Object의 사용량(Used Size) 및 여유 공간(Free Size) 추이를 제공합니다.
5Database Size Info분석 구간의 처음과 마지막 날짜가 자동으로 선택되며, Database / Object별로 사이즈 추이와 변화량을 제공합니다.
6Top-30 Object전체 Database / Object 기준으로 Top-30 Object 정보를 출력하며, 우측 상단의 라디오 버튼을 통해 정렬 기준을 선택합니다.

Search Panel 상세:

순번항목설명
1Reset검색 조건을 초기화합니다.
2Instance인스턴스와 오브젝트를 선택합니다. Object Name을 All 선택 시 Database 탭만 나타납니다. Object Name을 하나만 선택 시 Database, Object 탭이 모두 나타납니다.
3TimeLast Month / Last Week / Yesterday / Today 버튼 및 달력 UI로 조회 기간 설정. 최소 1일, 최대 32일

Database Size Trend:

항목설명
Database Size Trend일자별 Database / Object의 Used Size 및 Free Size 추이 차트
Database 탭
Object 탭
Date 명칭 (1일 이하)Start Time / End Time으로 표기
Date 명칭 (2일 이상)Start Date / End Date로 표기

Database Size Info:

항목설명
Database 탭 Grid
Object 탭 Grid

Grid 항목:

순번항목설명
1Database Name데이터베이스 이름
2Start Time Size조회 기간 중 처음 일자의 Database Size
3End Time Size조회 기간 중 마지막 일자의 Database Size
4Diff Size마지막 일자와 처음 일자 간의 Database Size 변화량 (End Size – Start Size)

Grid에서 특정 행을 클릭하면 Top-30 Object의 값이 변경됩니다.

Top-30 Object:

순번항목설명
1Radio 버튼Start All Size / End All Size / Diff All Size 중 선택하여 정렬 기준 변경

Grid 항목:

순번항목설명
1Rank순위
2Database Name데이터베이스 이름
3Object NameObject 이름 (클릭 시 Object Detail Slide 오픈)
4All SizeObject의 총 Size
5Data SizeObject의 Data Size
6Index SizeObject의 Index Size

Object Detail Slide:

순번항목설명
1TitleTop-30 Object에서 클릭한 오브젝트의 이름
2Close클릭 시 Detail Slide 닫힘
3Object Information오브젝트 Value별 차트 (Age(Current), Dead Tuples, Live Tuples, Table/Index Size, Scan Count 등 다양한 지표 선택 가능)
4Object History오브젝트의 데이터를 1시간 간격으로 표시

7. 부가 기능 - Dashboard 위젯 링크 연계

지원 버전: v3.0.508 이상

대시보드 위젯에서 PostgreSQL 성능 분석 화면으로 직접 연계할 수 있습니다.

PostgreSQL PA 연계 URL 목록:

화면URL조회 범위
Top N Analysis/postgresql/topNAnalysis최소 20분 / 초 불가
Search SQL/postgresql/searchSql최소 1일
Search Session/postgresql/searchSession최소 1초
Trend Analysis/postgresql/trendAnalysis최소 1일 / 분·초 불가
Parameter History/postgresql/parameterHistorytoTime = Base Date, fromTime = Compare Date / 시분초 불가
Object Size/postgresql/objectSize최소 1일 / 시분초 불가

링크 연결 가능한 위젯:

위젯 종류
타임시리즈, 이퀄라이저, 스코어보드
트리 그리드, 상위 리스트
대상 전용 뷰, 상태(이벤트), 토폴로지, 서버
카드

주의: Series Type이 By인 경우에만 targetId를 알 수 있어 정상 연계가 가능합니다.


8. 주의사항 / 참고

항목내용
Parameter History 날짜 설정toTime = Base Date(기준 날짜), fromTime = Compare Date(비교 날짜)로 동작합니다.
Trend Analysis 조회 제한2일 이상 조회 시 하단 탭(Backends, Lock Tree, Top SQL 등)의 데이터 조회에 제한이 있습니다.
조회 범위 보정최소 조회 범위보다 작은 기간이 입력되면, 최소 범위에 맞게 기간이 자동 보정되어 조회됩니다.
Object SizePostgreSQL은 Oracle의 Tablespace에 해당하는 Object Size 메뉴를 제공합니다.

참고 문서: