테마
일요일 22:00에 시작하는 야간 체인의 첫 단계는 T_ORD_BIG을 비우고 주문계 원천 100만 건을 다시 넣는다. 04:00 마감인데 이번 주는 09:12에 끝났다. 배치 담당 오과장: "10화 때 통계 수집 단계를 빼 봤는데도 안 줄었어요."
낮에는 정산 기간 조회(Q1)가 IX_ORD_BIG_DT_AMT를, 정산 목록 페이징(Q4)이 IX_ORD_BIG_DT_SEQ를 쓴다. IX_ORD_BIG_DT는 04화부터 '폐기 승인 대기'로 남아 있다.
T_ORD_BIG: 1,000,000행 · 5,826블록. PK, FK, 트리거는 없고, 다른 세션은 체인이 끝난 뒤에 읽는다.IX_ORD_BIG_DT (ORD_DT) 2,653 · IX_ORD_BIG_DT_AMT (ORD_DT, ORD_AMT) 3,206 · IX_ORD_BIG_DT_SEQ (ORD_DT, ORD_SEQ) 3,344ORD_ST에 FREQUENCY 히스토그램이 있다(10화 통계 정책서). 원천 STG_ORD_BIG은 100만 행이다(주문계에서 받아 둔 사본).-- 일요일 22:00 · 체인 ① T_ORD_BIG 재적재 (오과장)
TRUNCATE TABLE T_ORD_BIG;
INSERT INTO T_ORD_BIG (ORD_SEQ, CUS_ID, ORD_DT, ORD_ST, ORD_AMT)
SELECT ORD_SEQ, CUS_ID, ORD_DT, ORD_ST, ORD_AMT
FROM STG_ORD_BIG;
COMMIT;
EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'T_ORD_BIG')
[단계별 — 연습 DB 복사본 · 인덱스 셋 켠 채 (교재 14화 실습/02 [A])]
단계 경과 redo undo db block changes logical reads
INSERT 100만 + COMMIT 329 초 916.6 MB 344.4 MB 5,455,266 7,949,703
└ 그중 log file switch (checkpoint incomplete) 대기 309.5 초
통계 수집 1.06 초 1.4 MB 0 15,617 37,327
[같은 5만 건 · 인덱스 개수만 바꿔 (교재 14화 실습/01)]
인덱스 redo undo db block changes
0 개 2.44 MB 0.13 MB 1,921
1 개 (ORD_DT) 14.13 MB 4.34 MB 102,481
2 개 +(ORD_DT, ORD_AMT) 26.09 MB 8.72 MB 201,060
3 개 +(ORD_DT, ORD_SEQ) 38.55 MB 13.31 MB 301,704
[켠 채 일반 INSERT 로 채운 뒤의 인덱스 크기 (리프 블록)]
IX_ORD_BIG_DT 2,653 → 4,374 · IX_ORD_BIG_DT_AMT 3,206 → 3,555 · IX_ORD_BIG_DT_SEQ 3,344 → 5,505
[인덱스 사용 이력 — DBA_INDEX_USAGE · 최근 30일]
NAME TOTAL_ACCESS_COUNT LAST_USED
IX_ORD_BIG_DT 0 —
IX_ORD_BIG_DT_AMT 41,206 어제 17:52
IX_ORD_BIG_DT_SEQ 318,440 어제 18:03