2014-02-13 105 views
0

我正在嘗試設置性能測試的測試環境,目前我們有一個包含800萬條記錄的表,我們希望將這些記錄複製30天。如何複製分區內容?

換句話說: - 表1 --Partition1(8百萬個記錄) --Partition2(0記錄) 。 。現在我想將Partition1中的800萬條記錄複製到其餘的分區中,他們唯一的區別就是包含DATE的列。本專欄應在每個副本中改變1天。

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

等。

最後一個限制是原始表中有兩個索引,它們必須保存在副本中,Oracle DB爲10g。

如何複製此內容?

謝謝!

回答

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,因爲這是測試數據。