테마
경영지원팀 대시보드에 지난달 「월별 주문 금액 분포」 칸이 생겼다. 2022 ~ 2024년 36개월의 달마다 주문 금액 중앙값과 상위 10% 경계(90번째 백분위수)를 꺾은선으로 그린다. 평균은 고액 주문 몇 건에 끌려가니 분포를 보자는 박팀장의 요청이었다. 화면은 07시부터 19시까지 5분마다 새로 고친다. 그 뒤로 DBA가 뽑는 TEMP 사용 상위 목록에 이 SQL이 매번 오른다. 새로 고칠 때마다 TEMP를 22MB 쓰고 0.6초가 걸린다. 조민우는 "추세만 보는 그래프인데 원 단위까지 맞아야 하나"라고 묻는다.
T_ORD_BIG: 1,000,000행 · 5,826블록 · ORD_DT DATE(전부 자정, 2022-01-01 ~ 2024-12-31) · ORD_AMT 1만 ~ 50만 원에 고르게 퍼져 있다(100원 단위) · 한 달 약 2만 7천 건SELECT TRUNC(ORD_DT, 'MM') AS ORD_MM,
MEDIAN(ORD_AMT) AS AMT_P50,
PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY ORD_AMT) AS AMT_P90
FROM T_ORD_BIG
GROUP BY TRUNC(ORD_DT, 'MM')
ORDER BY ORD_MM
--------------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads | Writes | OMem | 1Mem | Used-Mem | Used-Tmp|
--------------------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | 36 |00:00:00.61 | 5831 | 4928 | 4928 | | | | |
| 1 | SORT GROUP BY | | 1 | 1096 | 36 |00:00:00.61 | 5831 | 4928 | 4928 | 65M| 1709K| 20M (1)| 22M|
| 2 | TABLE ACCESS FULL| T_ORD_BIG | 1 | 1000K| 1000K|00:00:00.05 | 5826 | 0 | 0 | | | | |
--------------------------------------------------------------------------------------------------------------------------------------------
OMem과 Used-Mem으로 설명하시오.