Oracle如何快速、大量的插入数据
来源:互联网 发布:层次分析法软件 编辑:程序博客网 时间:2024/06/11 18:42
测试说明:
创建一张表,5个字段,均是varchar(20)
sql 中脚本格式均是INSERT INTO 表名称 VALUES (值1, 值2,....)
sqlldr为oracle官方提供的导入工具,大家可自己搜索得知。
执行sql脚本的工具用的是Oracle的SQLDeveloper。
/////////////////////////////////////////////first time: 空表noIndex:
@/Users/Johson/Desktop/insertno.sql; 112s
useIndex:
@/Users/Johson/Desktop/insertuse.sql; 109s
sqlldr:
to TABLENOINDEX 2s
to TABLEUSEINDEX 2.8s
/////////////////////////////////////////////second time:9w的数据量
noIndex:
@/Users/Johson/Desktop/insertno.sql; 104s
useIndex:
@/Users/Johson/Desktop/insertuse.sql; 106s
sqlldr:
to TABLENOINDEX 2s
to TABLEUSEINDEX 2.8s
/////////////////////////////////////////////third time:150w的数据量
noIndex:
@/Users/Johson/Desktop/insertno.sql; 98s
useIndex:
@/Users/Johson/Desktop/insertuse.sql; 102s
sqlldr:
to TABLENOINDEX 2s
to TABLEUSEINDEX 2.8s
/////////////////////////////////////////////fouth time:160w的数据量
noIndex:
@/Users/Johson/Desktop/insertno.sql; 98s
useIndex:
@/Users/Johson/Desktop/insertuse.sql; 102s
sqlldr:
to TABLENOINDEX 2s
to TABLEUSEINDEX 2.8s
插入 1143012 只用了17s
/////////////////////////////////////////////
**总结一下,sqlldr的插入速度远高于我们任何一种单行插入的方式方法。他们远不在一个数量级上,最笨的方式又被无情的甩掉了几条街。
改写sql脚本格式:
INSERT INTO `Table` (`user_id`, `user_name`) VALUES(1, 'dsf'),(2, 'fgy'),(3, 'faad');
noIndex:
@/Users/Johson/Desktop/insertno.sql; 8s
useIndex:
@/Users/Johson/Desktop/insertuse.sql; 9s
****
看到没,速度终于提升上去了,从100s左右缩小到了10s内,目测看其中大概有至少5秒浪费在SQLDeveloper语法检查上,Oracle数据库自身处理速度绝对小与5s,所以sqlldr肯定就是用这个特殊的写法提高数据导入速度。。这个insert写法,发现是不符合SQL标准的,目前得知的只有ORACLE自身支持。数据库连接工具换成其他的如Navicat,发现根本不识别这种特殊的写法。辛苦了一个晚上,算是有所收获吧!自己安慰一下!
- Oracle如何快速、大量的插入数据
- 如何快速往表里插入大量的数据行
- 如何快速向Mysql插入大量数据?
- PostgreSQL数据库如何快速插入大量数据
- redis快速的插入大量的数据
- Oracle 插入大量数据
- Oracle 插入大量数据
- Oracle 插入大量数据
- Oracle 插入大量数据
- Oracle 插入大量数据
- oracle大量插入数据
- [Oracle]快速插入大量(100w)数据
- 如何在sqlserver数据库中快速插入大量数据.
- mysql快速插入大量数据
- 转:Oracle 插入大量数据
- (转)Oracle 插入大量数据
- Oracle和Informix一次插入大量数据的解决方法
- 大量数据快速插入到DB
- python 字符串反转
- 什么是Clean C
- Video简介学习
- 浅谈云计算与智慧城市建设
- PHP isset()与empty()的区别
- Oracle如何快速、大量的插入数据
- Linux获取IP_网关_DNS
- 2012青年志愿者中心述职报告
- Automatic orientation support for iPhone and iPad apps
- 操作系统大型实验进展(8)-----C语言函数fread
- DM6437下无DSP/BIOS中断
- ant 项目使用(修改配置,并加上lib 直接使用) 使用ant经行dbjunt测试
- RouterOS+RadiusManager3.8实现互联进行认证计费(一)
- SQL 左外连接,右外连接,全连接,内连接