[ORACLE] 파티션 테이블 merge 1 2 4,318

by 싱숭생숭 [Oracle 기초] Oracle [2023.04.19 17:44:23]


안녕하세요, 파티션테이블 작업 중에 궁금한 점이 생겨 글을 남깁니다.

파티션 테이블을 일반테이블로 변경하려면 일단 파티션들을 merge 한 후 exchange하여 일반테이블로 변환하는 것으로 알고 있는데요,

merge를 수행할 때 2개 이상의 파티션을 한번에 수행은 안되는 것일까요?

alter table 테이블 명 merge partitions 파티션1, 파티션2, 파티션3, 파티션4 into partition 파티션4;

이렇게 수행하면 

ORA-14126:<병렬절>만이 결과 분할로 된 기술(들)을 이행할 것입니다.

에러가 발생하더라구요.

 

두 개까지는 가능한데 그 이상은 가능한지에 대한 내용을 검색해보아도 잘 나오지 않네요.

만약에 불가하다면 혹시, 다른 방법이 있을까요?

테이블에 파티션이 약 60개로 나뉘어져 있고 데이터 양도 많아서 두 개씩 merge하면 시간이 오래걸리네요..

 

 

고수분들의 의견 간절히 기다립니다.

 

감사합니다.

 

by 포동푸우 [2023.04.19 22:19:48]

파티션 테이블을 일반테이블로 변경할 때는, 일반 테이블을 만들고 insert into 로 일괄 반영 하시는 것 추천해 드립니다. 
 - 온라인으로 변경하는 것은 쉽지 않습니다.    
 - 양이 많으면 where 로 데이터 나누어 적재 하시는 방법도 좋습니다. 

아래 Partition Exchange 과 MERGE PARTITIONS 을 잘 사용하면 되기는 하지만 
각각 제약사항이 있어서 사용하기가 수월하지는 않습니다. 

Partition Exchange 은 파티션 테이블과 파티션이 아닌 테이블을 context switch 할 때 ( Object ID 미변경 ) 사용하고 
 - 참조 https://jack-of-all-trades.tistory.com/83 
MERGE PARTITIONS 은 다수 파티션을 1개로 합칠 때 사용합니다.  
 - 참조 : https://kosate.tistory.com/104 
 - 참조 : https://docs.oracle.com/database/121/VLDBG/GUID-54080399-6E59-4706-80C8-690159B20790.htm 
  > ALTER TABLE t1 MERGE PARTITIONS p01, p02, p03, p04 INTO p0 ;  

 


by 싱숭생숭 [2023.04.21 13:34:10]

자세한 설명 감사 드립니다.

참조자료 보면서 작업 진행해볼께요!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입