본문으로 건너뛰기

Top SQL

조회 기간 동안의 Top SQL 목록을 제공합니다. 에이전트가 수집한 액티브 세션 내의 SQL을 기반으로 WhaTap이 실행 횟수, 수행 시간 등의 지표를 자체 산출한 SQL 통계입니다. 부하가 큰 SQL을 찾아 튜닝 우선순위를 정하는 데 도움이 됩니다.

추이 차트로 특정 시간대의 SQL 발생 패턴을 시각적으로 파악할 수 있으며, 리터럴 값을 제외한 SQL을 기준으로 통계를 산출합니다.

기본 옵션​

상단 필터 영역에서 조회 조건을 설정합니다.

항목설명
시간조회 시간 범위 선택
클러스터조회 대상 클러스터 선택
정렬 순서Top SQL 선정 기준 지표 선택
조회 건수표에 표시할 건수 설정
필드·필터SQL Text 등 필드로 조건을 걸어 목록을 좁히기

여기서 헷갈릴 수 있는 부분은 상단 셀렉터입니다. MySQL Top SQL은 대상 인스턴스를 고르지만, SingleStore Top SQL은 대상 클러스터를 고릅니다. SingleStore는 클러스터 단위로 SQL을 분산 처리하므로 클러스터 기준으로 통계를 모읍니다.

분석 기준 탭​

분석 기준 탭에서 Top SQL을 어떤 기준으로 묶어 볼지 선택합니다.

탭설명
ALLSQL 단위로 바로 확인
DB데이터베이스 단위로 SQL 부하 분석
USER사용자 계정 기준으로 SQL 부하 분석
NODE노드(node_id) 기준으로 SQL 부하 분석

선택한 지표 기준으로 상위 SQL의 추이를 시계열 차트로 표시합니다. 어떤 SQL이 어느 시간대에 부하가 높은지 한눈에 확인할 수 있습니다. 범례나 차트를 클릭하면 해당 SQL 라인이 강조됩니다.

SQL List 표​

조회 기간 동안의 Top SQL 목록을 표로 보여 줍니다.

ColumnDescription
SQL TextSQL 전문 (리터럴 값을 제외한 형태)
SQL Hash Value동일 SQL을 묶는 해시 값
User실행 사용자
Execute Count실행 횟수
Elapsed Time누적 수행 시간
Avg Elapsed Time평균 수행 시간
Max Elapsed Time최대 수행 시간

쿼리별 차트​

표 항목의 펼침 버튼을 클릭하면 개별 쿼리의 실행 횟수와 평균 수행 시간 차트를 확인할 수 있습니다. 차트의 막대를 클릭하면 해당 시간대의 인스턴스 모니터링 화면으로 이동해 그 시점의 노드 상태와 액티브 세션을 함께 확인할 수 있습니다.

SQL 상세 보기​

SQL을 클릭하면 상세 팝아웃이 열립니다. 팝아웃은 다음 영역으로 구성됩니다.

영역설명
QuerySQL 전문
SQL Statistics실행 횟수·수행 시간 등 통계
Elapsed Time Trends수행 시간 추이
Plan실행 계획

Plan(실행 계획)​

Plan 영역에서는 SQL의 실행 계획을 트리 테이블로 보여 줍니다. 각 단계의 처리 행 수(Rows), 노드 비용(Node Cost), 실행 계획(Plans)을 단계별로 확인할 수 있습니다.

쉽게 말하면 실행 계획은 데이터베이스가 SQL을 어떤 순서로 처리할지 짠 작업 계획서입니다. 비용이 큰 단계를 찾으면 어디서 시간이 오래 걸리는지 가늠할 수 있습니다.

데이터 해석 가이드​

지표의미해석 포인트
Execute CountSQL 호출 횟수높을수록 자주 호출되어 최적화 효과가 큼
Elapsed Time누적 수행 시간높을수록 전체 부하가 큰 SQL
Avg Elapsed Time1회 평균 수행 시간높을수록 개별 실행이 느려 튜닝 우선 대상
Max Elapsed Time최대 수행 시간평균과 차이가 크면 간헐적 성능 저하 의심