分区表数据处理问题
现有a分区表的数据约2千万条记录,大概24g,需要插入到b分区表中。temp表空间才2g大小,试过直接并行插入数据,脚本如下:
insert /*+parallel(b,8) append nologging */ into b select /*+paralel(a,8)*/ * from a(par_db_20160301)a,执行过程中提示无法通过128(在表空间TEMP中)扩展temp段。
现在通过循环插入的方式进行操作,但是时间耗时太久,请问有什么方法改进,循环插入的脚本如下
declare cursor mycursor is SELECT ROWID FROM aa order by rowid;
type rowid_table_type is table of rowid index by pls_integer;
v_rowid rowid_table_type;
BEGIN
open mycursor;
loop
fetch mycursor bulk collect into v_rowid limit 5000;
exit when v_rowid.count=0;
forall i in v_rowid.first..v_rowid.last
insert into cc (deptno,dname,loc) select * from aa t;
commit;
end loop;
close mycursor;
END;
我想要达到的效果是,并行,每插入n条记录后提交一次。