테마
매일 밤 「휴면 고객 판정」 배치는 고객마다 마지막 주문일을 구해 여섯 달 넘게 주문이 없는 고객을 휴면으로 바꾼다. 이 단계가 고객 주문 인덱스를 처음부터 끝까지 읽는다. 오과장이 묻는다. "05화에서 인덱스가 테이블보다 크다고 했지. 이 인덱스를 압축하면 얼마나 줄고 무엇이 빨라지나? 압축 컬럼 수는 몇으로 하나?"
T_ORD_BIG: 1,000,000행 · 5,826블록 · CUS_ID VARCHAR2(40)의 값은 'CUS_000123' 꼴 10글자 · 고객 2,000명, 고객당 500건 · 고객 한 명의 주문은 219개 날짜에 몰려 있다(한 날짜에 2 ~ 3건)IX_ORD_BIG_CUS_DT (CUS_ID, ORD_DT): BLEVEL 2 · 리프 약 4,110블록(리프 한 블록에 약 243항목) · 압축하지 않았다 · 통계 최신SELECT CUS_ID, MAX(ORD_DT) AS last_ord_dt
FROM T_ORD_BIG
GROUP BY CUS_ID
---------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers |
---------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | 2000 |00:00:00.21 | 4128 |
| 1 | HASH GROUP BY | | 1 | 2000 | 2000 |00:00:00.21 | 4128 |
| 2 | INDEX FAST FULL SCAN | IX_ORD_BIG_CUS_DT | 1 | 1000K| 1000K|00:00:00.08 | 4128 |
---------------------------------------------------------------------------------------------------