我有一个按列表分区的表,每个分区有多个值。例如:
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。
实现这一目标的最佳方法是什么?
多谢。
我找到了实现此目的的递归方法。
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 个不同的分区。
还有其他更快的方法吗?另外,在上面的方法中,您是否看到与索引或表空间相关的任何问题?谢谢