테마
다음 달부터 정산 기준이 부가세 포함 금액으로 바뀐다. 토요일 22:00 ~ 24:00 작업 창에 T_ORD_BIG의 ORD_AMT를 모두 부가세 포함 금액(원 단위 반올림)으로 바꾸기로 했다. 운영 복제본 리허설에서 UPDATE 한 문장이 6분 52초 걸렸고 redo가 1,186MB 나왔다.
DBA 의견: "인덱스 둘 다 끄고 돌린 다음 다시 짓죠." 정산팀은 작업 창 동안에도 정산 목록 화면(Q4)은 열어 두기를 바란다.
T_ORD_BIG: 1,000,000행 · 5,826블록 · 이번 작업은 모든 행의 ORD_AMT를 바꾼다. 트리거와 FK는 없다.IX_ORD_BIG_DT_AMT (ORD_DT, ORD_AMT): 리프 3,206블록 · 낮의 Q1(기간 매출, 91블록)이 쓴다.IX_ORD_BIG_DT_SEQ (ORD_DT, ORD_SEQ): 리프 3,344블록 · Q4(정산 목록 페이징, 15블록)가 쓴다.-- 토요일 22:00 작업 창 (리허설)
UPDATE T_ORD_BIG
SET ORD_AMT = ROUND(ORD_AMT * 1.1);
COMMIT;
------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers |
------------------------------------------------------------------------------------------
| 0 | UPDATE STATEMENT | | 1 | | 0 |00:06:52.40 | 6312K |
| 1 | UPDATE | T_ORD_BIG | 1 | | 0 |00:06:52.40 | 6312K |
| 2 | TABLE ACCESS FULL| T_ORD_BIG | 1 | 1000K| 1000K|00:00:00.31 | 5826 |
------------------------------------------------------------------------------------------
[세션 통계 — 리허설 (운영 복제본 · ARCHIVELOG)]
ORD_AMT 갱신 (원본) (비교) ORD_ST를 같은 길이 값으로 갱신 · 같은 100만 행
바뀐 칸이 든 인덱스 IX_ORD_BIG_DT_AMT 없음
redo size 1,186 MB 236 MB
undo change vector size 402 MB 98 MB
db block changes 4,128,460 1,021,300
경과 6분 52초 41초
그중 log file switch 대기 5분 10초 12초
[UPDATE 뒤 인덱스 크기 (리프 블록)]
IX_ORD_BIG_DT_AMT 3,206 → 5,310 · IX_ORD_BIG_DT_SEQ 3,344 → 3,344