如何使用现有数据创建表分区?

时间:2015-08-21 08:11:22

标签: oracle

我是银行项目的开发人员。交易表有1200万条记录,但它没有分区。那么,我可以用现有数据创建这个表的分区吗?

2 个答案:

答案 0 :(得分:0)

您可以执行以下步骤:

1. Create an empty table with partitioned structure as you want.
2. Populate the table with insert as select from previous table.
3. Optionally disable constraints before load.

如果您想要更有效的方法:

1. Create an empty table with partitioned structure as you want.
2. Create side table with data for specific partition (you can do it easily using create as select).
3. Exchange partition with the table created.

这个过程效率更高,可以通过PL / SQL实现自动化,但还需要做更多的工作。第一种方法更容易,但可能需要更多时间。

答案 1 :(得分:-1)

您无法直接对现有的非分区表进行分区。您需要根据以下分区方法创建临时表/新表:

  • <强> DBMS_REDEFINITION

    1. 创建分区中间表
    2. 开始重新定义过程
    3. 创建约束和索引(依赖关系)
    4. 完成重新定义过程
  • <强> EXCHANGE PARTITION

    1. 创建分区目标表
    2. EXCHANGE PARTITION
    3. SPLIT PARTITION(如果需要将单个大分区拆分为较小的分区)