+ -
当前位置:首页 → 问答吧 → 求助超大数据量insert方法

求助超大数据量insert方法

时间:2011-12-05

来源:互联网

目前有一张表,数据量大概9亿左右,要把里面的数据迁移到同库下的另一张表里,请问应该怎么弄?
想建立一个事务,每insert进去1W条就提交一下,应该怎么写?

作者: Liyingyue_FFS   发布时间: 2011-12-05

首先要清楚,事务是自动开始的,我们只能控制事务的结束。

INSERT INTO B SELECT * FROM A;

让它执行罢。

作者: LuiseRADL   发布时间: 2011-12-05

另一张表里 有数据没有?

作者: lxpbs8851   发布时间: 2011-12-05

如果另外一个表target_table数据不大的话,建议:
1.用 create table as 产生一张表 new_table (最好加上nologing)或者将数据库 或者表空间设置为 nologing
2.将原表target_table的数据 插入到new_table 
3.重建索引 
4.drop 原表target_table
5.改名new_table--》target_table 索引改名 (应为index的名字是不能重复的 这个有点恶心)

作者: lxpbs8851   发布时间: 2011-12-05

同库下的不同表之前的数据迁移,相对较简单,考虑到你数据量大,自己写个PLSQL,自动控制事务大小,批量提交。

作者: gelyon   发布时间: 2011-12-05

写个存储过程,每1w提交可以的

作者: jcback   发布时间: 2011-12-05