5 년 동안 거대한 데이터 (수백만 개의 레코드, 단지 사례 연구!)가있는 테이블이 있으며, 매년 파티션이 있습니다. 이제 저는 지난 2 년간의 데이터를 보존하고 나머지 3 년간의 데이터를 archive라는 새로운 테이블로 옮기고 싶습니다.테이블에서 파티션을 분리하여 oracle의 다른 파티션에 연결하는 방법은 무엇입니까?
다운 타임이 최소화되고 고성능으로 이상적인 방법은 무엇입니까?
5 년 동안 거대한 데이터 (수백만 개의 레코드, 단지 사례 연구!)가있는 테이블이 있으며, 매년 파티션이 있습니다. 이제 저는 지난 2 년간의 데이터를 보존하고 나머지 3 년간의 데이터를 archive라는 새로운 테이블로 옮기고 싶습니다.테이블에서 파티션을 분리하여 oracle의 다른 파티션에 연결하는 방법은 무엇입니까?
다운 타임이 최소화되고 고성능으로 이상적인 방법은 무엇입니까?
alter table exchange partition
입니다. 이 명령은 테이블 세그먼트로 파티션의 세그먼트를 확장합니다. 그것은 단지 약간의 참조 interchages를하기 때문에 그것은 가벼운 속도입니다. AFAIK를 직접 교환 할 수 없으므로 임시 테이블이 필요합니다. 같은
뭔가 :
create table tmp_table(same columns);
Add partition p_2011 in table ARCH_TABLE;
ALTER TABLE CURR_TABLE EXCHANGE PARTITION P_2011 WITH TABLE tmp_table;
ALTER TABLE ARCH_TABLE EXCHANGE PARTITION P_2011 WITH TABLE tmp_table;
실행하기 전에 코드를 테스트 테스트하십시오.
닫기 투표자 : 이것은 데이터 조작에 관한 질문입니다. 대부분의 경우 DBA는 이에 관여하지 않습니다. db 프로그래머는 스스로 그렇게해야합니다. –
@FlorinGhita [dba.se]는 DBA 자료 이상을 처리합니다.) VtC – Sathya
@ Sathya에 대한 정보는 아니지만 이해합니다. 하지만이 질문에 맞는 것 같아요, stackoverflow 여기에. 아마도 dba.stackexchange.com에서는 괜찮은 편이지만, 여기에서도 괜찮습니다. –