Top SQL
조회 기간 동안의 Top SQL 목록을 제 공합니다. 에이전트가 수집한 액티브 세션 내의 SQL을 기반으로 WhaTap이 실행 횟수, 수행 시간 등의 지표를 자체 산출한 SQL 통계입니다. 부하가 큰 SQL을 찾아 튜닝 우선순위를 정하는 데 도움이 됩니다.
추이 차트로 특정 시간대의 SQL 발생 패턴을 시각적으로 파악할 수 있으며, 리터럴 값을 제외한 SQL을 기준으로 통계를 산출합니다.
기본 옵션
상단 필터 영역에서 조회 조건을 설정합니다.
| 항목 | 설명 |
|---|---|
| 시간 | 조회 시간 범위 선택 |
| 클러스터 | 조회 대상 클러스터 선택 |
| 정렬 순서 | Top SQL 선정 기준 지표 선택 |
| 조회 건수 | 표에 표시할 건수 설정 |
| 필드·필터 | SQL Text 등 필드로 조건을 걸어 목록을 좁히기 |
여기서 헷갈릴 수 있는 부분은 상단 셀렉터입니다. MySQL Top SQL은 대상 인스턴스를 고르지만, SingleStore Top SQL은 대상 클러스터를 고릅니다. SingleStore는 클러스터 단위로 SQL을 분산 처리하므로 클러스터 기준으로 통계를 모읍니다.
분석 기준 탭
분석 기준 탭에서 Top SQL을 어떤 기준으로 묶어 볼지 선택합니다.
| 탭 | 설명 |
|---|---|
| ALL | SQL 단위로 바로 확인 |
| DB | 데이터베이스 단위로 SQL 부하 분석 |
| USER | 사용자 계정 기준으로 SQL 부하 분석 |
| NODE | 노드(node_id) 기준으로 SQL 부하 분석 |
Top SQL Trends 차트
선택한 지표 기준으로 상위 SQL의 추이를 시계열 차트로 표시합니다. 어떤 SQL이 어느 시간대에 부하가 높은지 한눈에 확인할 수 있습니다. 범례나 차트를 클릭하면 해당 SQL 라인이 강조됩니다.
SQL List 표
조회 기간 동안의 Top SQL 목록을 표로 보여 줍니다.
| Column | Description |
|---|---|
| SQL Text | SQL 전문 (리터럴 값을 제외한 형태) |
| SQL Hash Value | 동일 SQL을 묶는 해시 값 |
| User | 실행 사용자 |
| Execute Count | 실행 횟수 |
| Elapsed Time | 누적 수행 시간 |
| Avg Elapsed Time | 평균 수행 시간 |
| Max Elapsed Time | 최대 수행 시간 |
쿼리별 차트
표 항목의 펼침 버튼을 클릭하면 개별 쿼리의 실행 횟수와 평균 수행 시간 차트를 확인할 수 있습니다. 차트의 막대를 클릭하면 해당 시간대의 인스턴스 모니터링 화면으로 이동해 그 시점의 노드 상태와 액티브 세션을 함께 확인할 수 있습니다.
SQL 상세 보기
SQL을 클릭하면 상세 팝아웃이 열립니다. 팝아웃은 다음 영역으로 구성됩니다.
| 영역 | 설명 |
|---|---|
| Query | SQL 전문 |
| SQL Statistics | 실행 횟수·수행 시간 등 통계 |
| Elapsed Time Trends | 수행 시간 추이 |
| Plan | 실행 계획 |
Plan(실행 계획)
Plan 영역에서는 SQL의 실행 계획을 트리 테이블로 보여 줍니다. 각 단계의 처리 행 수(Rows), 노드 비용(Node Cost), 실행 계획(Plans)을 단계별로 확인할 수 있습니다.
쉽게 말하면 실행 계획은 데이터베이스가 SQL을 어떤 순서로 처리할지 짠 작업 계획서입니다. 비용이 큰 단계를 찾으면 어디서 시간이 오래 걸리는지 가늠할 수 있습니다.