如何向Oracle数据库表中进行大数据量的插入并提交?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何向Oracle数据库表中进行大数据量的插入并提交?相关的知识,希望对你有一定的参考价值。
我将A数据库里的一张表里的数据通过DBLink的方式插入到B数据库中,A表只有两个字段,但是却又几千万的数据,一句很简单的Sql却执行了两个小时还没有执行完毕,请问应该如何进行这种大数据量的插入操作?个人觉得应该是一次性插入并提交的数据量太大的缘故导致速度特别慢,请问谁有更好的方法解决这个问题呢。
大数据量提交可能会造成系统瘫痪,所以不建议这样做。
如果有需要,可以在导出insert语句的时候分批次commit(提交)。
方法如下:
1、登录plsql,进入导出表
2、选择要导出的表,然后下图位置根据需要写上每次多少行提交,选择导出路径,点击导出即可
set autocommit on;
set autocommit 200000;
然后,假如你的目标数据库, 是归档的话, 可以
INSERT /*+ append */ INTO 目标表 nologging SELECT * FROM 源表@DBLINK;
commit;
set autocommit off;
假如你的 目标表 上面, 有 索引的话, 建议先删除 索引。
等 上面的 INSERT 语句执行完毕后, 再重建索引。追问
insert into T1 select * from T2@Oracle12;
commit;
请问set autocommit 200000;应该在哪里添加?!
SQL Plus 里面应该可以.
在 PL/SQL Developer 里面, 好像不行。
以上是关于如何向Oracle数据库表中进行大数据量的插入并提交?的主要内容,如果未能解决你的问题,请参考以下文章