这里提供一种方法,使用 APPEND 提示,使得十分钟内插入上亿数据成为可能。

-- Create table

create table TMP_TEST_CHAS_LEE

(

f01 VARCHAR2(20),

f02 NUMBER(10) not null,

f03 VARCHAR2(21),

f04 VARCHAR2(21),

f05 NUMBER,

f06 NUMBER(20)

);

--创建一个临时表,用于提供序列号

CREATE GLOBAL TEMPORARY table t_sequence_num(

sequenceNum number(8) not null

)

ON COMMIT PRESERVE ROWS;

--开始插入数据

begin

--先生成1万个序号

delete from t_sequence_num;

for i in 0..9999 loop

insert into t_sequence_num(sequenceNum) values(i);

end loop;

--使用APPEND提示,每次1万条,进行数据插入

for i in 1..10 loop

insert /*+ append */ into TMP_TEST_CHAS_LEE

(f01, f02, f03, f04, f05, f06)

select

8613800000000 + i * 10000 + t_sequence_num.sequencenum as MSISDN,

'12106000',

0,

'20120312072000',

'500231891000',

null

from t_sequence_num;

--每批次必须要提交一次

commit;

end loop;

end;

/

可以看出,这种方法的关键是使用了 APPEND 提示,也就是使用了 Direct Path Insert.

效果非常惊人,上亿的数据,十分钟左右就搞定了,也就是说,每秒钟插入了超过10万条以上的记录。

这个方法很简单,就是要利用 APPEND提示,方法就是需要有个序列表,来辅助数据生成。

性能测试人员不用耗费大量的时间来等待测试数据生成了。

需要注意的问题:

1. 插入数据时,表上不要建立索引

2. 可以在数据插入完毕后,通过 nologging 和 parallel 来创建索引

3. 这里默认是1万条记录提交一次,可以改的更大,应该会更快

4. APPEND方式插入数据后,必须要提交后才能对表进行其它操作

5. 生成的数据的每个字段都是可以根据自己的需要灵活产生的

转载自:

http://www.cnblogs.com/trhimily/p/3911862.html

oracle 1亿条数据,如何在十分钟内插入1亿条记录到Oracle数据库?相关推荐

  1. oracle导入亿条数据耗时,如何在十分钟内插入1亿条记录到Oracle数据库?

    这里提供一种方法,使用 APPEND 提示,使得十分钟内插入上亿数据成为可能. -- Create table create table TMP_TEST_CHAS_LEE ( f01 VARCHAR ...

  2. MySQL一次查几万条数据,【mysql】一次插入几万条数据应该怎么做优化

    刚刚去面试,面试官提问了我一次插入几万条数据有什么优化方法,一次更新几万条数据有什么优化方法,这些我之前都没有用过,希望大家给我解一下惑. 回答 1.insert批量执行,禁止单条insert val ...

  3. java mysql 快速插入1000w条数据_教你88秒插入1000万条数据到mysql数据库表

    我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ...

  4. 前端 传表格多条数据 给后台接收 (HTML前端表格多条数据JSON封装后;异步提交到后台处理)

    前端 传表格多条数据 给后台接收 (HTML前端表格多条数据JSON封装后:异步提交到后台处理) 1.多条数据采用checkBox 携带 //封装数据的对象var PayObj = { O_NBR:& ...

  5. 基于 Laravel-Admin 在十分钟内搭建起功能齐全的后台模板

    http://laravelacademy.org/post/6468.html 1.简介 为 Laravel 提供后台模板的项目越来越多,学院君已陆续为大家介绍过Laravel Angular Ad ...

  6. 如何在十分钟内将阅读速度提高200%

    如何在十分钟内将阅读速度提高200% 你总要花一些时间去阅读的.阅读的速度相对来讲也是一件很重要的事情. 以下是4个简单的技巧--帮助你在十分钟之内将阅读速度提高200%, 同时还能不漏掉重要信息. ...

  7. mysql 1亿条数据建索引时间_单表 13 亿记录创建索引需要多长时间?

    试了.瓶颈在磁盘的情况下,用并行 copy 或者 直接 copy 时间差别不大. at 30s, row rate 666546.92/sec (period), row rate 666546.92 ...

  8. mysql分组取出每组地一条数据_MySQL 分组后取每组前N条数据

    与oracle的rownumber() over(partition by xxxorder by xxx)语句类似,即:对表分组后排序 创建测试emp表 DROP TABLE IF EXISTS e ...

  9. mysql如何快速插入一千万条数据_如何快速安全的插入千万条数据?

    最近有个需求解析一个订单文件,并且说明文件可达到千万条数据,每条数据大概在20个字段左右,每个字段使用逗号分隔,需要尽量在半小时内入库. 思路 1.估算文件大小 因为告诉文件有千万条,同时每条记录大概 ...

最新文章

  1. 利用owc生成excel并且显示在页面
  2. python线性加权回归_python深度学习-tensorflow实现一个线性回归的案例
  3. 【项目实战】SQL :部门花名册PBI展示
  4. ansible(基础)
  5. 从nginx-rtmp中提取一帧h264帧
  6. 面对这么多困境,梅耶尔还能怎么应对?
  7. spring boot集成oss
  8. php 大型系统开法流程图,有一个php项目源码,如何搞清楚执行过程?画出其流程图...
  9. eigen库学习笔记
  10. cpan mysql dbd,Perl中DBI和DBD-mysql模块的安装
  11. dnf丢失clientbase_clientbase.dll
  12. mysql字段是否存在_mysql怎么查询字段是否存在?
  13. Linux下配置MySQL免安装版
  14. python写入文件取消自动换行
  15. sentinel.conf样例
  16. Oracle 10.2.0.5 + OFS 3.4.2 双节点集群
  17. linux .so文件u xxx,Linux动态链接库.so文件创建与使用.pdf
  18. DBeaver(其他可视化工具一样的逻辑)连接IoTDBDriver教程
  19. Simulink文件命名问题
  20. Ubuntu server关机命令

热门文章

  1. 批标准化 tf.keras.layers.BatchNormalization 参数解析与应用分析
  2. SQL*Plus 系统变量之32 - NEWP[AGE]
  3. JVM-常用内存调优参数总结
  4. ul 中的li取值问题
  5. [PAT] 02-线性结构2 Reversing Linked List(单向链表的逆转) - C语言实现
  6. windows server下安装SSHD服务
  7. utl_file包的使用
  8. 搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (三)实现数据库接口层和业务逻辑层(转)...
  9. 3.6 SQL Server 内存
  10. 聊天机器人不仅能省下客服成本 体验可能会更好