我有一个按列表分区的表,每个分区都有多个值。例如:
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 :(得分: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个不同的分区。
还有其他更快的方法吗?另外,在上述方法中,您是否看到与索引或表空间相关的任何问题?感谢