테마
유통 본사 「동월 비교」 화면은 달 하나(:v_mm)를 고르면 그달의 매장별 판매 건수를 해마다 나란히 보여 준다. 개발자는 연도를 따로 받지 않으려고 판매일자의 월 두 자리만 잘라 비교했다. 지금은 2022년과 2023년 두 해이고, 내년이면 2024년이 붙는다.
점장과 MD가 하루 수백 번 연다. 박팀장은 "고치는 방법 세 가지를 읽는 양, 해가 늘 때의 손질, 적재 부담으로 비교해 와라"고 했다.
CF10 판매: 500,000행 · 4,583블록 · SLE_DT VARCHAR2(8) '20220101' ~ '20231231'(길이 8 고정) · SHP_NO NUMBER(5) 1001 ~ 1005 · 판매일자 순으로 쌓였다 · 한 달 약 2만 1천 건(2022년 6월 20,412건, 2023년 6월 20,953건)CF10_PK (SLE_NO) · IX_CF10_DT_SHP (SLE_DT, SHP_NO): BLEVEL 2 · 리프 약 1,520블록(한 달 약 63블록) · 통계 최신SELECT SUBSTR(SLE_DT, 1, 4) AS yy, SHP_NO, COUNT(*) AS sle_cnt
FROM CF10
WHERE SUBSTR(SLE_DT, 5, 2) = :v_mm
GROUP BY SUBSTR(SLE_DT, 1, 4), SHP_NO
ORDER BY yy, SHP_NO
[6월(:v_mm = '06')]
----------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers |
----------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | 10 | 00:00:00.09 | 1532 |
| 1 | SORT GROUP BY | | 1 | 10 | 10 | 00:00:00.09 | 1532 |
|* 2 | INDEX FAST FULL SCAN | IX_CF10_DT_SHP | 1 | 5000 | 41365 | 00:00:00.07 | 1532 |
----------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter(SUBSTR("SLE_DT",5,2)=:V_MM)
SLE_DT인데도 2번 줄이 범위 스캔이 아닌 이유를, 6월 판매가 인덱스의 어디에 있는지로 설명하시오.