2017-02-07 9 views
0

목록별로 분할 된 테이블이 있고 각 파티션에는 여러 값이 있습니다. 예를 들어 :목록 파티션 (값 집합)을 Oracle의 여러 단일 값 파티션으로 분할

partition by list (COL1) 
(
    partition GROUP_1 values ('VAL1','VAL2','VAL3') 
) 

이 표는 거대한 데이터가 때로는 여러 세션은 같은 블록에 액세스하려고 나는 다른 세션 문제로 읽을 직면하고있다. 그래서 아래 구조로 변경하려고합니다 :

Alter Table Table_1 
Split Partition GROUP_1 INTO 
    partition GROUP_2 values ('VAL1'), 
    partition GROUP_3 values ('VAL2'), 
    partition GROUP_4 values ('VAL3') 
) PARALLEL 5; 

개체 상흔을 유발할 수 있으므로 DBMS_REDEF를 사용할 수 없습니다. 분할 파티션을 사용하려고하는데 ORA-14028이 표시됩니다.

이 목표를 달성하는 가장 좋은 방법은 무엇입니까?

고마워요.

답변

0

이 문제를 재귀 적으로 발견했습니다.

Alter Table Table_1 
Split Partition GROUP_1 VALUES ('VAL1') INTO 
    (partition GROUP_1, 
    partition GROUP_2) PARALLEL 5; 

그런 다음

Alter Table Table_1 
Split Partition GROUP_2 VALUES ('VAL2') INTO 
    (partition GROUP_2, 
    partition GROUP_3) PARALLEL 5; 

이 방법은, 우리는 3 개의 다른 값에 대해 3 개의 파티션을 만들 수 있습니다.

다른 빠른 방법이 있습니까? 또한 위의 접근 방식에서 인덱스 또는 테이블 공간과 관련된 문제가 있습니까? 감사합니다.