테마
14화의 파티션 전환을 앞두고 박팀장이 주문했다. "운영본 ORD_RANDOM이 이관 전 보관본 ORD와 한 줄도 다르지 않다는 것부터 보여라." 조민우가 MINUS 대사 두 문장을 낮 시간에 돌렸다. 두 문장 다 0행이었고 건수도 1,000,000 = 1,000,000이었다. 대신 한 문장에 20초씩 걸렸고, 그동안 TEMP를 400MB씩 써서 다른 배치가 TEMP 부족 경고를 받았다.
오과장은 서버를 바꿀 때 ORD_RANDOM 적재가 중간에 한 번 끊겼다가 다시 돌았다고 기억한다. 그런데 ORD_RANDOM에는 PK가 없다.
ORD(이관 전 보관본): 1,000,000행 · 22,422블록 · ORD_PK (ORD_NO)ORD_RANDOM(운영본): 1,000,000행 · 22,414블록 · PK 없음(인덱스는 ORD_RANDOM_X01 (ORD_DT, ORD_HMS)뿐) · 서버 교체 때 ORDER BY 없이 다시 적재ORD_NO, ORD_DT, ORD_HMS, SHOP_NO, UPPER2, UPPER_CASE, LOWER_CASE, ALPHABET(100자), ALPHABET_NUMERIC(100자) · 한 행 약 190바이트 · ORD_PK 말고는 NOT NULL 제약이 없다-- ① 보관본에만 있는 행
SELECT ORD_NO, ORD_DT, ORD_HMS, SHOP_NO, UPPER2, UPPER_CASE, LOWER_CASE, ALPHABET, ALPHABET_NUMERIC
FROM ORD
MINUS
SELECT ORD_NO, ORD_DT, ORD_HMS, SHOP_NO, UPPER2, UPPER_CASE, LOWER_CASE, ALPHABET, ALPHABET_NUMERIC
FROM ORD_RANDOM;
-- ② 운영본에만 있는 행
SELECT ORD_NO, ORD_DT, ORD_HMS, SHOP_NO, UPPER2, UPPER_CASE, LOWER_CASE, ALPHABET, ALPHABET_NUMERIC
FROM ORD_RANDOM
MINUS
SELECT ORD_NO, ORD_DT, ORD_HMS, SHOP_NO, UPPER2, UPPER_CASE, LOWER_CASE, ALPHABET, ALPHABET_NUMERIC
FROM ORD;
[① — ② 도 같은 모양 · 19.84초 · 44,836블록 · TEMP 약 400MB]
-----------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads | Writes | Used-Mem | Used-Tmp |
-----------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | 0 |00:00:19.84 | 44836 | 51210 | 51210 | | |
| 1 | MINUS | | 1 | | 0 |00:00:19.84 | 44836 | 51210 | 51210 | | |
| 2 | SORT UNIQUE | | 1 | 1000K| 1000K|00:00:09.71 | 22422 | 25605 | 25605 | 21M (1)| 201M |
| 3 | TABLE ACCESS FULL| ORD | 1 | 1000K| 1000K|00:00:00.31 | 22422 | 0 | 0 | | |
| 4 | SORT UNIQUE | | 1 | 1000K| 1000K|00:00:09.69 | 22414 | 25605 | 25605 | 21M (1)| 201M |
| 5 | TABLE ACCESS FULL| ORD_RANDOM | 1 | 1000K| 1000K|00:00:00.30 | 22414 | 0 | 0 | | |
-----------------------------------------------------------------------------------------------------------------------------------
[① 결과 0행 · ② 결과 0행 · 두 문장 합계 89,672블록 · 약 40초]