我正在尝试为性能测试设置一个测试环境,目前我们有一个包含800万条记录的表,我们希望将这些记录复制30天。
换句话说: - 表格1 - 分区1(800万条记录) - Partart2(0条记录) 。 。 --Partition30(0条记录)
现在我想在Partition1中获取800万条记录并在其余分区中复制它们,唯一的区别就是包含DATE的列。此列应在每个副本中更改一天。
分区1(DATE) 分区2(DATE + 1) Partition3(DATE + 2)
等等。
最后的限制是原始表中有2个索引,它们必须保留在副本中,Oracle DB为10g。
如何复制此内容?
谢谢!
答案 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,因为这是测试数据。