【问题标题】:Split a list partition (set of values) into multiple single value partitions in Oracle在 Oracle 中将列表分区(一组值)拆分为多个单值分区
【发布时间】:2017-02-08 02:10:30
【问题描述】:

我有一个按列表分区的表,每个分区都有多个值。例如:

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。

实现这一目标的最佳方法是什么?

非常感谢。

【问题讨论】:

    标签: oracle split partition


    【解决方案1】:

    我找到了一种递归方式来实现这一点。

    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 个不同的分区。

    还有其他更快的方法吗?此外,您在上述方法中是否看到任何与索引或表空间相关的问题?谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 2019-07-04
      • 2017-10-03
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多