情况是这样,本地有一个数据库A,远端有一个数据库B,数据库都是oracle 9i,每个月的月初要一次性地将A的表T_a的所有数据插到B的表T_b,两张表表结构一样,大概600w条数据,除了直接写INSERT语句,有没有更好的方法?现在直接用INSERT好像很耗费时间和资源。

解决方案 »

  1.   

    最好分批同步,
    如果一次性插入大数据量网络传输不可避免。
    可以考虑减少目标数据库UNDO和REDO的生成来加快插入
    insert /*+append*/ into t_b@link_b select * from t_a;
      

  2.   

    1.600W数据,可以写个存储过程,分批插入数据,分批提交;
    2.既然每个月都是一次性的,考虑还原DMP,也省心;
    3.找个ETL工具,最好是绿色的,做抽取,KETTLE,其它的DS等ETL就不要考虑,还要安装。
      

  3.   

    分条件进行insert,避免回滚段过大。