본문으로 건너뛰기

exemONE MySQL Database 성능 분석

메뉴 경로: Performance Analysis > Database MySQL

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

SQL Analysis

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


1. Top-N Analysis

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

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

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

1-1. Top N SQL Grid 항목

clipboard

항목상세 설명 및 역할
Rank순위
Schema쿼리를 실행한 사용자 이름
DigestDigest (쿼리 식별자) (클릭 시 SQL Detail Slide 오픈)
SQL Text수행된 쿼리 SQL Text
Total Latency (sec)총 수행 시간 (초)
Avg Latency (sec)평균 수행 시간 (초)
Max Latency (sec)최대 수행 시간 (초)
Rows Sent명령문에 의해 반환된 행 수
Rows Sent (Avg)명령문에 의해 반환된 행 수 평균 (Rows Sent / Executions)
Rows Examined명령문의 영향을 받는 행 수
Rows Examined (Avg)명령문의 영향을 받는 행 수 평균 (Rows Examined / Executions)
Tmp Disk Tables명령문 실행 중 생성된 내부 디스크 임시 테이블 수
Tmp Disk Tables (Avg)디스크 임시 테이블 수 평균 (Tmp Disk Tables / Executions)
Sort Merge PassesSort Buffer보다 정렬 데이터가 큰 경우 Temp 영역을 사용해 처리한 수
Sort Merge Passes (Avg)Sort Merge Passes 평균 (Sort Merge Passes / Executions)
Executions명령문이 실행된 횟수
Ratio (%)Top SQL 대비 총 대기 시간 비율

1-2. Top-5 Schema Grid 항목

clipboard

항목상세 설명 및 역할
Rank순위
Schema스키마 이름
Total Latency (sec)총 수행 시간 (초)
Rows Sent명령문에 의해 반환된 행 수
Rows Examined명령문의 영향을 받는 행 수
Executions명령문이 실행된 횟수
Latency/Exec (sec)수행 횟수 1개당 수행 시간
Rows Examined/Exec수행 횟수 1개당 영향을 받는 행 수
Tmp Disk Tables명령문 실행 중 생성된 내부 디스크 임시 테이블 수
Sort Merge PassesSort Buffer보다 정렬 데이터가 큰 경우 처리한 수
Total Latency (%)스키마의 Total Latency 비율
Rows Examined (%)스키마의 Rows Examined 비율
Executions (%)스키마의 Executions 비율

2. Search SQL

메뉴 경로: Performance Analysis > Database MySQL > SQL Analysis > Search SQL

특정 SQL의 통계정보와 과거 수행 이력을 확인하는 화면입니다.

순번항목상세 설명 및 역할
1Search조회 기간, 인스턴스 그룹, 인스턴스, Option(Digest, SQL Text)을 지정하여 검색합니다.
2Search SQL List구간별 사용된 SQL 통계값을 표시합니다. Latency Time 기준 Top-1 SQL이 자동 선택됩니다.
3TrendSQL 목록에서 선택한 SQL의 Time / Rows / Executions 3가지 주요 지표를 차트로 표시합니다.
4History선택한 SQL의 수행 이력 및 상세 정보를 표시합니다.
5Full Text선택한 SQL의 전체 텍스트를 표시합니다.
6Plan선택한 SQL의 Plan 정보를 표시합니다.

2-1. Search SQL List Grid 항목

clipboard

항목상세 설명 및 역할
No검색 조건에 따른 Top-SQL 순위
DB데이터베이스 명
DigestDigest (쿼리 식별자)
SQL TextSQL Text
Executions명령문이 실행된 횟수
Latency (sec)수행 시간 (초)
Lock Latency (sec)테이블 Lock 경과 시간의 총 시간 (초)
Rows Examined스토리지 엔진에서 읽은 행 수
Rows Sent명령문에서 반환된 행 수
Rows Sorted명령문에 의해 정렬된 행 수
Sort ScanTable Scan을 통해 수행되는 Sort 횟수
Sort RangeIndex Scan을 통해 수행되는 Sort 횟수
Sort Merge PassesSort Buffer보다 정렬 데이터가 큰 경우 Temp 영역을 사용해 처리한 수
Rows Affected명령문의 영향을 받는 행 수
Tmp Tables명령문 실행 중 생성된 임시 테이블 수
Tmp Disk Tables명령문 실행 중 생성된 내부 디스크 임시 테이블 수
Error Count명령문 실행으로 인해 발생한 총 오류 수
Sum No Index Used (count)인덱스를 사용하지 않고 테이블 스캔을 수행한 수
Sum No Good Index Used (count)기존 인덱스 중 사용할 인덱스를 찾지 못한 횟수
Max Latency (sec)최대 수행 시간 (초)
First Seen명령문이 처음 표시된 시간

2-2. History Grid 항목

clipboard

항목상세 설명 및 역할
Time설정한 분석 기간에 따라 1시간 집계 혹은 하루 집계 형태로 시간 추이 제공
Executions명령문이 실행된 횟수
Latency (sec)수행 시간 (초)
Lock Latency (sec)테이블 Lock 경과 시간의 총 시간 (초)
Rows Examined스토리지 엔진에서 읽은 행 수
Rows Sent명령문에서 반환된 행 수
Rows Sorted명령문에 의해 정렬된 행 수
Sort ScanTable Scan을 통해 수행되는 Sort 횟수
Sort RangeIndex Scan을 통해 수행되는 Sort 횟수
Sort Merge PassesSort Buffer보다 정렬 데이터가 큰 경우 처리한 수
Tmp Tables명령문 실행 중 생성된 임시 테이블 수
Tmp Disk Tables명령문 실행 중 생성된 내부 디스크 임시 테이블 수
Error Count명령문 실행으로 인해 발생한 총 오류 수
Sum No Index Used (count)인덱스를 사용하지 않고 테이블 스캔을 수행한 수
Sum No Good Index Used (count)기존 인덱스 중 사용할 인덱스를 찾지 못한 횟수
Max Latency (sec)최대 수행 시간 (초)
First Seen명령문이 처음 표시된 시간

2-3. Plan Grid 항목

clipboard

항목상세 설명 및 역할
#단위 SELECT 쿼리별로 부여되는 식별자 값
Query Plan통계정보를 기반으로 옵티마이저가 수립하는 작업 절차

3. 주의사항 및 참고

  • ⚠️ 주의: MySQL 5.5 버전은 Top-N Analysis 및 Search SQL 사용이 불가합니다.
  • ⚠️ 주의: Top-N Analysis의 조회 기간은 최대 32일, 최소 20분입니다. Search SQL의 조회 기간은 최대 32일, 최소 1일입니다.
  • 💡 참고: Search SQL List에서 다른 SQL을 클릭하면 Trend 영역 값이 함께 변경됩니다. 우측 상단 Toggle 버튼으로 합계/평균 전환이 가능합니다.
  • 💡 참고: DML 또는 Function이 포함된 SQL의 Plan 조회 시 권한 문제가 발생할 수 있습니다. 이 경우 Plan 조회 프로시저(exem_get_explain)를 생성하고 Setting > Database > Edit Instance > Custom Configuration에서 use_plan_procedure: true로 설정하세요.

Session Analysis

메뉴 경로: Performance Analysis > Database MySQL > Session Analysis > Search Session

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

1. Search Session

clipboard

순번항목상세 설명 및 역할
1Search조회 기간, 인스턴스 그룹, 인스턴스, Option(Thread ID, Process ID, User, DB, Digest, SQL Text, State, Program Name, Query Start Time)을 지정하여 검색합니다.
2Search Session List조회 조건에 맞는 데이터를 Grid 형식으로 표시합니다.

1-1. Search Session List Grid 항목

항목상세 설명 및 역할
Time검색 조건에 따라 출력되는 시간 추이
Thread IDThread ID
Process ID서버 Process ID
User사용자 이름
Host사용자 Host
DB데이터베이스 명
DigestDigest (쿼리 식별자) (클릭 시 SQL Detail Slide 오픈)
Event Name발생 이벤트명
SQL TextSQL Text
Elapsed Time (sec)수행 시간 (초)
Query Start Time쿼리 시작 시간
CommandSQL 수행 상태
StateThread가 수행하는 작업을 나타내는 상태
PID사용자 Process ID
Program Name사용자 프로그램 이름
Statement Latency (sec)명령문이 실행된 시간 (초)
Progress각 행에 대한 단계 진행률 (100 * WORK_COMPLETED / WORK_ESTIMATED)
Lock Latency (sec)Lock을 대기하는데 소요된 시간 (초)
Rows Examined스토리지 엔진에서 읽은 행 수
Rows Sent명령문에서 반환된 행 수
Rows Affected명령문의 영향을 받는 행 수
Tmp Tables명령문 실행 중 생성된 임시 테이블 수
Tmp Disk Tables명령문 실행 중 생성된 내부 디스크 임시 테이블 수
Full Scan명령문에서 수행한 Full Table Scan 여부
Last Statement Latency (sec)마지막 명령문이 실행된 시간 (초)
Current MemoryThread가 할당한 바이트 수
Last WaitThread에 대한 가장 최근의 대기 이벤트 이름
Last Wait Latency (sec)Thread에 대한 가장 최근 대기 이벤트의 대기 시간 (초)
Source이벤트를 생성한 계측 코드가 포함된 소스 파일 및 줄 번호
Trx Latency (sec)Thread에 대한 현재 트랜잭션의 대기 시간
Trx StateThread에 대한 현재 트랜잭션의 상태
Trx Autocommit현재 트랜잭션이 시작될 때 자동 커밋 모드 활성화 여부

2. 주의사항 및 참고

  • ⚠️ 주의: MySQL 5.5 및 5.6 버전은 Search Session 사용이 불가합니다.
  • ⚠️ 주의: Search Session의 조회 기간은 최대 1일, 최소 1초입니다.
  • 💡 참고: Thread ID 클릭 시 Session Detail Slide가 열리며, 해당 세션의 Active Session History 및 SQL Plan을 상세히 확인할 수 있습니다.

Performance Analysis

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

1. Trend Analysis

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

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

순번항목상세 설명 및 역할
1Search조회 기간, 인스턴스 그룹, 인스턴스를 지정하여 검색합니다.
2Trend Chart데이터베이스 주요 지표 Trend를 표시합니다. 각 차트명 우측 상단 아이콘 클릭 시 Stat Change 팝업에서 지표를 변경할 수 있습니다.
3GridChart에서 클릭한 시점의 Threads, Prcoess List, Lock Tree, Meta Lock Tree, Top SQL, Top Event, Long Active Thread, User Connection Info, Alert, Slow Query 정보를 표시합니다.

1-1. Trend Analysis — Grid 하위 탭 구성

  • Threads 탭

클릭 시점에 수집된 Thread 정보를 표시합니다.

clipboard

항목상세 설명 및 역할
Thread IDThread ID
Process ID서버 Process ID
User사용자 이름
Host사용자 Host
DB데이터베이스
DigestDigest (쿼리 식별자)
SQL TextSQL Text
Elapsed Time (sec)수행 시간 (초)
Query Start Time쿼리 시작 시간
CommandSQL 수행 상태
State현재 Tablespace 사용 여부 (Active / Inactive)
PID사용자 Process ID
Program Name사용자 프로그램 이름
Statement Latency (sec)명령문이 실행된 기간 (초)
Progress각 행에 대한 단계 진행률
Lock Latency (sec)Lock을 대기하는데 소요된 시간 (초)
Rows Examined스토리지 엔진에서 읽은 행 수
Rows Sent명령문에서 반환된 행 수
Rows Affected명령문의 영향을 받는 행 수
Tmp Tables명령문 실행 중 생성된 임시 테이블 수
Tmp Disk Tables명령문 실행 중 생성된 내부 디스크 임시 테이블 수
Full Scan명령문에서 수행한 전체 테이블 스캔 수
Last Statement Latency (sec)마지막 명령문이 실행된 시간 (초)
Current MemoryThread가 할당한 바이트 수
Last WaitThread에 대한 가장 최근의 대기 이벤트 이름
Last Wait Latency (sec)Thread에 대한 가장 최근 대기 이벤트의 대기 시간 (초)
Source이벤트를 생성한 계측 코드가 포함된 소스 파일 및 줄 번호
Trx Latency (sec)Thread에 대한 현재 트랜잭션의 대기 시간
Trx StateThread에 대한 현재 트랜잭션의 상태
Trx Autocommit현재 트랜잭션이 시작될 때 자동 커밋 모드 활성화 여부
  • Process List 탭

클릭 시점에 수집된 Process 정보를 표시합니다.

clipboard

항목상세 설명 및 역할
Process ID서버 Process ID
User사용자 이름
Host사용자 Host
DB데이터베이스
Command프로세스 유형
Elapsed Time (sec)수행 시간
State프로세스 상태
SQL Text수행 SQL 쿼리문

Lock Tree 탭

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

clipboard

항목상세 설명 및 역할
Start Time세션 시작 시간
Collect Time수집 시간
Lock Wait Time (sec)Wait Session의 대기 소요 시간
Lock StatusLock Session 상태
Blocking Engine Transaction IDLock 트랜잭션 ID
Engine Transaction ID트랜잭션 ID
Thread IDThread ID
Processlist ID서버 프로세스 ID
SQL Text수행된 쿼리 SQL Text
NameMySQL Lock Name
Lock TypeMySQL Lock 타입

Meta Lock Tree 탭

클릭 시점에 수집된 Meta Lock Tree 정보를 표시합니다. Lock Tree 탭과 동일한 항목 구조로 MySQL Meta Lock 정보를 제공합니다.

clipboard

Top SQL 탭

클릭 시점에 수집된 Top SQL 정보를 표시합니다.

clipboard

항목상세 설명 및 역할
Rank순위
DigestDigest (쿼리 식별자) (클릭 시 SQL Detail Slide 오픈)
SQL Text수행 쿼리문
Executions실행 횟수
Total Latency (sec)총 대기 시간 (초)
Avg Latency (sec)평균 대기 시간 (초)
Max Latency (sec)최대 대기 시간 (초)
DB데이터베이스 명
Tmp Disk Tables명령문 실행 중 생성된 내부 디스크 임시 테이블 수
Sort Merge PassesSort Buffer보다 정렬 데이터가 큰 경우 처리한 수

Order By 조건 선택: Avg Latency(기본값) / CPU Time / Exec Count / Max Latency / Sort Merge Passes / Tmp Disk Tables / Total Latency

Top Event 탭

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

clipboard

항목상세 설명 및 역할
Rank순위
Event NameEvent 이름
CountEvent 발생 횟수
Wait Time (sec)총 대기 시간 변화량 (초)
Avg Wait Time (sec)평균 총 대기 시간 변화량 (초)

Long Active Thread 탭

클릭 시점에 수집된 Long Active Thread 정보를 표시합니다.

clipboard

항목상세 설명 및 역할
Rank순위
PIDProcess ID
Thread IDThread ID
Query Start Time쿼리 시작 시간
DigestDigest (쿼리 식별자)
Host사용자 Host
User사용자 이름
DB데이터베이스 명
CommandSQL 수행 상태
Elapsed Time (sec)수행 시간 (초)

User Connection Info 탭

클릭 시점에 수집된 User Connection Info 정보를 표시합니다.

clipboard

항목상세 설명 및 역할
Rank순위
User사용자 이름
Host사용자 Host
AVG Connection평균 연결 수
MAX Connection최대 연결 수

Alert 탭

클릭 시점에 수집된 알람 정보를 표시합니다.

clipboard

항목상세 설명 및 역할
Time발생 시간
Alert TypeAlert 유형
Rule NameAlert 이름
LevelAlert Level (Critical / Warning / Normal)
ValueAlert 발생 값

Slow Query 탭

클릭 시점에 수집된 Slow Query 정보를 표시합니다.

clipboard

항목상세 설명 및 역할
Thread IDThread ID
User Host사용자 Host
Start Time쿼리 시작 시간
Query Time (sec)Query 수행 경과 시간
Lock Time (sec)Lock 발생 경과 시간
SQL TextSQL Text

2. Parameter History

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

파라미터 조회를 통해 장애 시점과 정상 시점의 파라미터를 비교 분석하는 화면입니다.

순번항목상세 설명 및 역할
1Search조회 기간, 인스턴스 그룹, 인스턴스, Option(Parameter Name)을 지정하여 검색합니다.
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일, 최소 1일입니다.
  • ⚠️ 주의: Parameter History에서 Base Date와 Compare Date를 동일한 날짜로 설정하면 비교가 불가합니다.
  • ⚠️ 주의: MySQL 5.5 버전은 Trend Analysis의 Threads, Meta Lock Tree, Top SQL, Long Active Thread, User Connection Info 탭 사용이 불가합니다.
  • ⚠️ 주의: MySQL 5.6 버전은 Trend Analysis의 Threads, Meta Lock Tree, Long Active Thread 탭 사용이 불가합니다.
  • 💡 참고: Trend Analysis에서 차트를 드래그하면 해당 구간의 데이터를 하단 Grid에서 확인할 수 있어 장애 시간대 분석에 유용합니다.
  • 💡 참고: Slow Query 수집을 위해서는 DB에서 slow_query_log = ON, long_query_time = {초} 설정이 필요합니다.

DataSpace Analysis

메뉴 경로: Performance Analysis > Database MySQL > DataSpace Analysis > Object Size

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

1. Object Size

순번항목상세 설명 및 역할
1Search조회 기간, 인스턴스 그룹, 인스턴스, Option(Object Name)을 지정하여 검색합니다.
2Tab검색 패널 인스턴스 항목에서 선택한 조건에 따라 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

clipboard

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

1-2. Database Size Info Grid 항목

clipboard

항목상세 설명 및 역할
DB 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순위
DB 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-5. Object Detail Slide

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

clipboard

순번항목상세 설명 및 역할
1TitleTop-30 Object에서 클릭한 오브젝트의 이름을 표시합니다.
2Close클릭 시 Detail Slide가 닫힙니다.
3Object Information오브젝트 Value별 차트를 표시합니다. Data Size, Index Size, Total Size, Count Delete, Count Fetch, Count Insert, Count Read, Count Update, Count Write, Row Scan Count, Row Scan Ratio 등 다양한 지표 선택이 가능합니다.
4Object History오브젝트 데이터를 1시간 간격으로 표시합니다.

3. 주의사항 및 참고

  • ⚠️ 주의: DataSpace Analysis의 조회 기간은 최대 32일, 최소 1일입니다.
  • ⚠️ 주의: MySQL 5.5 및 5.6 버전은 Object Detail의 DB Size, Object Size 외 모든 지표(Object Detail Selectbox 내 지표) 사용이 불가합니다.
  • 💡 참고: Database Size Info에서 특정 행을 클릭하면 Top-30 Object의 값이 해당 DB 기준으로 변경됩니다.

참고 문서: