본문으로 건너뛰기

exemONE PostgreSQL Database 성능 분석

메뉴 경로: Performance Analysis > Database PostgreSQL

PostgreSQL Database의 성능 문제를 SQL, Session, Performance, DataSpace 관점에서 심층 분석할 수 있는 메뉴입니다.

SQL Analysis

특정 기간 동안 수행된 SQL의 통계정보, 수행 이력, 실행 계획을 Top-N AnalysisSearch SQL 두 가지 관점에서 분석하는 메뉴입니다.

1. Top-N Analysis

메뉴 경로: Performance Analysis > Database PostgreSQL > SQL Analysis > Top-N Analysis

Stacked Area Chart를 활용하여 특정 기간 동안의 Top SQL을 조회하는 기능을 제공합니다.

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

1-1. Top-N SQL Grid 항목

clipboard

항목상세 설명 및 역할
Rank순위
User Name쿼리를 실행한 사용자 이름
Database Name쿼리가 실행된 데이터베이스 이름
SQL IDSQL 고유 식별자 (클릭 시 SQL Detail Slide 오픈)
Query ID쿼리 ID
SQL Text쿼리 텍스트
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 수 평균 변화량 (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가 추가로 표시됩니다.

clipboard

clipboard

항목상세 설명 및 역할
Rank순위
User Name / Database Name사용자 이름 또는 데이터베이스 이름
Calls실행 횟수 변화량
Shared Blks HitShared 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의 통계정보와 과거 수행 이력을 확인하는 화면입니다.

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

2-1. Search SQL List Grid 항목

clipboard

항목상세 설명 및 역할
No순번
User Name사용자 이름
Database Name데이터베이스 이름
SQL ID (Query ID)Query ID
SQL TextSQL 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 항목

clipboard

항목상세 설명 및 역할
#단위 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

순번항목상세 설명 및 역할
1Search조회 기간, 인스턴스 그룹, 인스턴스, 데이터베이스, Option(PID, User Name, Database Name, App Name, Client Address, Wait Event, Wait Event Type, Query Start, SQL Text)을 지정하여 검색합니다.
2Search Session List조회 조건에 맞는 데이터를 Grid 형식으로 표시합니다.

1-1. Search Session List Grid 항목

항목상세 설명 및 역할
TimeBackend Session이 수집된 시간
PIDBackend Process ID
User Name사용자 이름
Database Name데이터베이스 이름
App Name애플리케이션 이름
Client AddressClient 주소
Client Host NameClient 호스트 이름
Backend StartBackend Process가 시작된 시간
SQL ID (Query ID)SQL 고유 식별자 (클릭 시 SQL Detail Slide 오픈)
Elapsed Time (sec)SQL 실행시간 (초)
SQL TextSQL Text
Wait EventBackend Process가 대기한 이벤트
Wait Event TypeBackend Process가 대기한 이벤트 유형
StateBackend Process 상태
Xact Start트랜잭션 시작 시간
Query StartQuery 시작 시간

2. 주의사항 및 참고

  • ⚠️ 주의: Search Session의 조회 기간은 최대 1일, 최소 1초입니다.
  • 💡 참고: PID 클릭 시 Session Detail Slide가 열리며, 해당 Session의 Active Session History 및 SQL Plan을 상세히 확인할 수 있습니다.

Performance Analysis

날짜별·시간별 성능 추이 확인과 Parameter 변경 이력 비교를 통해 특정 시점의 정밀한 성능 분석 기능을 제공하는 메뉴입니다.

Performance Analysis는 Trend AnalysisParameter History 두 가지 하위 메뉴로 구성됩니다.

1. Trend Analysis

메뉴 경로: Performance Analysis > Database PostgreSQL > Performance Analysis > Trend Analysis

날짜별·시간별 성능 추이를 확인하고, 특정 시점의 정밀한 성능 분석 기능을 제공합니다.

clipboard

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

1-1. Grid 하위 탭 구성

clipboard

상세 설명 및 역할
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 변경이 성능 저하 원인인지 분석하는 화면입니다.

clipboard

순번항목상세 설명 및 역할
1Search조회 기간, 인스턴스 그룹, 인스턴스, 데이터베이스를 지정하여 검색합니다.
2Parameter List SearchParameter Name 컬럼 기준으로 검색합니다.
3Parameter ListBase Date와 Compare Date의 파라미터를 비교하여 변경된 파라미터를 Status(Changed 값) 에 표시합니다.

2-1. Parameter List Grid 항목

항목상세 설명 및 역할
Parameter NameParameter 명 (클릭 시 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

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

1-1. Database Size Trend

clipboard

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

1-2. Database Size Info Grid 항목

clipboard

항목상세 설명 및 역할
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 항목

clipboard

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

1-4. Object Detail Slide

Object Name 클릭 시 Object Detail Slide가 열립니다.

clipboard

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

2. 주의사항 및 참고

  • ⚠️ 주의: DataSpace Analysis의 조회 기간은 최대 32일, 최소 1일입니다.
  • 💡 참고: Object Name을 All로 선택하면 Database 탭만 제공되며, 특정 오브젝트를 선택해야 Object 탭이 함께 나타납니다.
  • 💡 참고: Database Size Info에서 특정 행을 클릭하면 Top-30 Object의 값이 해당 DB 기준으로 변경됩니다.

참고 문서: