파티션 MERGE 동작 방식을 테스트하기 위해 아래와 같이 테이블을 생성하겠습니다.
-- 1
DROP TABLE t1 PURGE;
CREATE TABLE t1 (c1 NUMBER, c2 NUMBER)
PARTITION BY RANGE (c1) (
PARTITION p1 VALUES LESS THAN (2)
, PARTITION p2 VALUES LESS THAN (MAXVALUE)
);
아래 실행 계획에서 파티션 merge가 p1 파티션을 읽어 p2 파티션으로 입력하는 방식으로 동작하는 것을 알 수 있습니다. 단일 세그먼트는 단일 테이블스페이스에 존재해야 하므로 상이한 테이블스페이스에 생성된 파티션의 경우 예상되는 동작 방식이지만, 동일한 테이블스페이스에 생성된 파티션이라면 메타데이터 변경만으로 파티션을 merge할 수 있으면 좋을 것 같습니다.
-- 2
ALTER TABLE t1 MERGE PARTITIONS p1, p2 INTO PARTITION p2 PARALLEL 2;
========================================================
| Id | Operation | Name |
| | | |
========================================================
| 0 | CREATE TABLE STATEMENT | |
| 1 | PX COORDINATOR | |
| 2 | PX SEND QC (RANDOM) | :TQ10000 |
| 3 | LOAD AS SELECT (HYBRID TSM/HWMB) | T1 |
| 4 | PX BLOCK ITERATOR | |
| 5 | TABLE ACCESS FULL | T1 |
========================================================