签到成功

知道了

CNDBA社区CNDBA社区

千万级别数据循环插入

2018-09-05 11:02 3615 3 原创 oracle
作者: Tingshao

现有a分区表的数据约2千万条记录,大概24g,需要插入到b分区表中。temp表空间才2g大小,试过直接并行插入数据,脚本如下:
insert /+parallel(b,8) append nologging / into b select /+paralel(a,8)/ * from a(par_db_20160301)a,执行过程中提示[color=#FF0000]无法通过128(在表空间TEMP中)扩展temp段[/color]。
现在通过循环插入的方式进行操作,但是时间耗时太久,请问有什么方法改进,循环插入的脚本如下http://www.cndba.cn/Tingshao/article/3003

http://www.cndba.cn/Tingshao/article/3003
http://www.cndba.cn/Tingshao/article/3003
http://www.cndba.cn/Tingshao/article/3003

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;http://www.cndba.cn/Tingshao/article/3003http://www.cndba.cn/Tingshao/article/3003http://www.cndba.cn/Tingshao/article/3003

我想要达到的效果是,并行,每插入n条记录后提交一次。http://www.cndba.cn/Tingshao/article/3003http://www.cndba.cn/Tingshao/article/3003http://www.cndba.cn/Tingshao/article/3003

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Tingshao

Tingshao

关注
  • 2
    原创
  • 0
    翻译
  • 0
    转载
  • 9
    评论
  • 访问:13434次
  • 积分:9
  • 等级:注册会员
  • 排名:第115名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ