如何复制分区内容?

时间:2014-02-13 18:32:23

标签: oracle10g

我正在尝试为性能测试设置一个测试环境,目前我们有一个包含800万条记录的表,我们希望将这些记录复制30天。

换句话说: - 表格1 - 分区1(800万条记录) - Partart2(0条记录) 。 。 --Partition30(0条记录)

现在我想在Partition1中获取800万条记录并在其余分区中复制它们,唯一的区别就是包含DATE的列。此列应在每个副本中更改一天。

分区1(DATE) 分区2(DATE + 1) Partition3(DATE + 2)

等等。

最后的限制是原始表中有2个索引,它们必须保留在副本中,Oracle DB为10g。

如何复制此内容?

谢谢!

1 个答案:

答案 0 :(得分:0)

在我看来,尽可能简单有效地插入插件。

如果您将现有数据交叉连接到整数列表1 ... 29,那么您可以生成所需的新日期。

with list_of_numbers as (
  select rownum day_add
  from   dual
  connect by level <= 29)
insert /*+ append */ into ...
select date_col + day_add, ...
from   ...,
       list_of_numbers;  

您可能希望在表上设置NOLOGGING,因为这是测试数据。