4.开启表日志功能
ALTER TABLE TABLE_NAME LOGGING;
说明:这种方式只能按照串行的方式进行,如果有多个任务在同时进行,会导致进程等待,反而会影响传输的效率。
二:PARALLEL模式(并行进程数要谨慎 )
此模式有4种方式,
1.插入PARALLEL
INSERT /*+ PARALLEL(N) */ INTO TABLE_NEW SELECT * FROM TABLE_ORI ;
这种是采用INSERT 并发,适用于 查询快,插入慢的场景。
2.查询PARALLEL
INSERT INTO TABLE_NEW SELECT /*+ PARALLEL(N) */ * FROM TABLE_ORI ;
这种采用查询并发,适用于插入快,查询慢的应用场景。
3.插入和查询PARALLEL
INSERT /*+ ENABLE_PARALLEL_DML parallel( T N)*/ INTO TABLE_NEW T
SELECT * FROM TABLE_ORI;
注: ENABLE_PARALLEL_DML 是启动DML语句并行的作用。
这种采用DML并发,适用于执行DML语句慢的应用场景。
4.Session并发
ALTER SESSION ENABLE PARALLEL DML;
INSERT INTO TABLE_NEW SELECT /*+ PARALLEL(N) */ * FROM TABLE_ORI ;
ALTER SESSION DISABLE PARALLEL DML;
注: 这种模式其实跟第三种差不多,只不过这种是会话级别的。
这种也是采用DML并发,适用于执行DML语句慢的应用场景。但是这种更适用于那种应用场 景复杂的情况。
这种也是采用DML并发,适用于执行DML语句慢的应用场景。说明:这种方式只能按照串行的方式进行,如果有多个任务在同时进行,会导致进程等待,反而会影响传输的效率。但是源表的数据量是1亿的数据量,按照最普遍的方式 INSERT INTO 效率太低了。这种是采用INSERT 并发,适用于 查询快,插入慢的场景。注: 这种模式其实跟第三种差不多,只不过这种是会话级别的。这种采用DML并发,适用于执行DML语句慢的应用场景。这种采用查询并发,适用于插入快,查询慢的应用场景。3.插入和查询PARALLEL。
最近在做
数据库
迁移的工作,其中有一些
数据
表
数据
量庞大,传统的执行
insert
语句
批量
执行,执行速度非常的缓慢。
二:解决思路
1.首先原库的一张表fj_date有6万多
条
数据
;新库中的表名与它一样,但是没有
数据
。
2.其次要解决的问题是:使用DBLINK建立两库的连接,语法就不多说了,看图。
3.然后需要做的就是在原库中编写sql,实现跨库的select——
insert
操作,具体...
首先我们需要建立一个表为tb_1,在里面添加一个(或多个)字段。这里我只添加一个字段为name并添加一行
数据
。然后我们可以在这个表中添加百万
条
数据
,方法如下:
一.借助
Oracle
中的dual表
select * from tb_1,(select level from dual connect by level <= 500000);
constraint T_DQS_DATA_CRITERION_PAGE_PK
primary key,
DATA_CRITERION_PRIMARY_ID VARCHAR2(32) not null,
IS_ASSOCIATE NUMBER,
FILE_NAME VARCHAR2
[size=large][align=center]
insert
大量
数据
经验之谈[/align][/size]
在很多时候,我们会需要对一个表进行插入大量的
数据
,并且希望在尽可能短的时间内完成该工作,这里,和大家分享下我平时在做大量
数据
insert
的一些经验。
前提:在做
insert
数据
之前,如果是非生产环境,请将表的索引和约束去掉,待
insert
完成后再建索引和约束。
对于
Oracle
数据库
,可以使用以下几种方法进行大
批量插入
数据
:
1. 使用
INSERT
INTO SELECT语句:将
数据
从一个表复制到另一个表中,可以使用WHERE子句筛选需要的
数据
。
2. 使用PL/SQL块:可以使用FOR循环和BULK COLLECT INTO语句在一个事务中插入大量
数据
。
3. 使用外部表:可以将
数据
存储在文件中,然后将其导入到
Oracle
数据库
中的外部表中,然后将
数据
插入到目标表中。
4. 使用SQL*Loader工具:可以使用SQL*Loader工具将
数据
从文件中加载到
Oracle
数据库
中。
5. 使用
批量插入
API:可以使用
Oracle
提供的
批量插入
API来插入大量
数据
。例如,使用JDBC
批量插入
API可以在一个事务中插入大量
数据
。
以上这些方法可以根据实际情况选择适合自己的方法,提高
数据
插入效率。