테마
본사 영업관리팀의 「직영점 일일 점검」 화면은 직영점 세 곳의 하루 판매 건수를 매장 이름과 함께 보여 준다. 매장 번호 1001 ~ 1003이 직영점이고 1004, 1005는 가맹점이다. 영업관리팀 열두 명이 하루에도 몇 번씩 연다.
매장별 조회를 위해 만든 (SHP_NO, SLE_DT) 인덱스를 타는데, 세 매장의 하루치 436건을 세는 데 592블록을 읽는다. 아래는 2023년 12월 15일이다.
CF10 판매: 500,000행 · 4,583블록 · 2022-01-01 ~ 2023-12-31 · 매장 다섯 곳에 약 10만 건씩(1001 99,748 · 1002 100,152 · 1003 100,167) · 하루 596 ~ 793건CF07 매장: 6행 · 4블록 · CF07_PK (SHP_NO) · 1000은 본사IX_CF10_SHP_DT (SHP_NO, SLE_DT): BLEVEL 2 · 리프 약 1,470블록(리프 한 블록에 약 340항목) · 통계 최신SELECT h.SHP_NO,
(SELECT s.SHP_NM FROM CF07 s WHERE s.SHP_NO = h.SHP_NO) AS shp_nm,
COUNT(*) AS sle_cnt
FROM CF10 h
WHERE h.SHP_NO BETWEEN 1001 AND 1003
AND h.SLE_DT = :v_dt
GROUP BY h.SHP_NO
ORDER BY h.SHP_NO
-------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers |
-------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | 3 |00:00:00.02 | 598 |
| 1 | TABLE ACCESS BY INDEX ROWID| CF07 | 3 | 1 | 3 |00:00:00.01 | 6 |
|* 2 | INDEX UNIQUE SCAN | CF07_PK | 3 | 1 | 3 |00:00:00.01 | 3 |
| 3 | SORT GROUP BY NOSORT | | 1 | 3 | 3 |00:00:00.02 | 592 |
|* 4 | INDEX RANGE SCAN | IX_CF10_SHP_DT | 1 | 411 | 436 |00:00:00.02 | 592 |
-------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("S"."SHP_NO"=:B1)
4 - access("H"."SHP_NO">=1001 AND "H"."SLE_DT"=:V_DT AND "H"."SHP_NO"<=1003)
filter("H"."SLE_DT"=:V_DT)
(SLE_DT, SHP_NO)를 만드는 방법과 비교하시오.