2012-09-07 3 views
1

이것이 가능한지 궁금합니다.목록 기반 파티션의 파티션 키 변경

col1을 기반으로하는 파티션 파티션이 있고 col2을 기반으로하는 파티션 구조로 이동하려는 경우 이전 테이블을 삭제하고 새 테이블의 이름을 바꾸어야합니까?

또는 더 쉬운 방법이 있습니다.

+0

작성/삭제/이름 바꾸기 경로를 사용할 수없는 이유가 있습니까? 똑바로 접근합니다. – tbone

+0

기존 테이블에서 파티션을 변경하는 방법이 있다고 생각하지 않습니다. 한 가지 방법 또는 다른 방법으로는 만들기/복사/놓기/이름 바꾸기 시퀀스를 수행해야합니다. 파티셔닝을 돕기위한 시스템 패키지가 있습니다 - 지금은 이름을 기억할 수 없습니다 - SYS.DBMS_PART 또는 그와 비슷한 것. 그것을 사냥하면 코드 더미를 작성할 필요가 없게됩니다. 공유하고 즐기십시오. –

+0

[dba.se] (http://dba.stackexchange.com/)에서 이와 같은 질문을 게시하는 것을 고려해보십시오. 개인적으로 이것이 저기에 훨씬 적합 할 것이라고 생각합니다. –

답변

2

분할에 관한 전체적인 점은 행이 함께 배치된다는 점이므로 실제로 행을 이동해야합니다. 그러나 이것을 달성하는 더 쉬운 방법이 있습니다. 나는 온라인 재정의가 이것으로가는 길이라고 생각한다. 그것은 사용자가 테이블을 계속 사용하도록 허용하는 임시 버전의 테이블을 유지 관리하므로 간병을 덜 필요로합니다.

간단히 말해서 새로운 파티셔닝 체계로 테이블의 빈 버전을 생성하고 DBMS_REDEFINITION이 마술을하도록하십시오. Find out more.

(NB : 실제로이 방법을 사용하여 분할 키를 변경 한 적이 없지만 분할되지 않은 테이블을 분할 된 테이블로 전환하는 데 사용했지만 실제로 작동하지 않아야하는 이유는 없습니다. 귀하의 시나리오에서).