测试说明:

创建一张表,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的插入速度远高于我们任何一种单行插入的方式方法。他们远不在一个数量级上,最笨的方式又被无情的甩掉了几条街。

/发现我们的劣势很大,研究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如何快速、大量的插入数据相关推荐

  1. python向es写入大量数据_使用Python-elasticsearch-bulk批量快速向elasticsearch插入数据_李谦的博客-CSDN博客...

    from elasticsearch import Elasticsearch from elasticsearch import helpers import pymysql import time ...

  2. oracle exp 无效dblink,【案例】Oracle dblink 数据库连接dblink insert插入数据时异常分析...

    天萃荷净 开发DBA反映在测试数据表插入数据,Oracle dblink两库连接插入同步数据时数据量异常 一.诡异Oracle dblink起源 今天开发拿过来一条sql,说有诡异现象,sql如下 I ...

  3. mybatis批量插入oracle报表达式,mybatis oracle两种方式批量插入数据

    mybatis在oracle中批量插入数据时,单次批量大小有限制,批量插入时,单次批量过大,也会影响插入性能.故程序端也需要对应的限制. BEGIN insert into blacklist (id ...

  4. 2批量批量查询数据插入数据_你还在利用复制批量插入数据吗?一个oracle命令助你批量插入数据...

    大家好,我是RomMr,一个务实的科技人! 你还在用复制.粘贴的办法批量修改数据库数据吗?今天就和大家分享一个可以直接调用文档的命令来帮助大家批量修改,插入数据. 1.start 和 @ 命令 当我们 ...

  5. ORACLE字符集为US7ASCII,插入数据,中文乱码问题解决

    1.可以通过select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';查到ORACLE的字符集 US7ASCI ...

  6. 解决ORACLE字符集为US7ASCII,插入数据中文乱码问题

    1. 可以通过select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';查到ORACLE的字符集 2. 如果为 ...

  7. mybatis oracle两种方式批量插入数据(带序号)

    需求 批量从excle导入数据 jsp <input id="file" name="file" type="file"/> & ...

  8. Oracle存储过程循环判断并插入数据,今天是周几

    目录 在表中插入一年年初到年末的日期(YYYY-MM-DD)并判断是什么标志(标志:工作日[周一到周四]. 周五 .周末). 1.创建表 2.编写存储过程 3.运行存储过程 在表中插入一年年初到年末的 ...

  9. oracle中如何加字母,Oracle数据库之oracle数据库表插入数据的时候如何产生一个字母+数字...

    本文主要向大家介绍了Oracle数据库之oracle数据库表插入数据的时候如何产生一个字母+数字,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle 语句中" ...

  10. 【Oracle】快速向表中插入大量数据Oracle中append与Nologging

    当需要对一个非常大的表INSERT的时候,会消耗非常多的资源,因为update表的时候,oracle需要生成 redo log和undo log;此时最好的解决办法是用insert, 并且将表设置为n ...

最新文章

  1. SAP QM中阶之Reference Operation Set 的使用
  2. 为什么要学习DOS?
  3. python类修饰器_《Python有什么好学的》之修饰器
  4. 关于助动词和过去分词的一点见解
  5. oracle 一次删除多张表
  6. Entity Framework Core Like 查询揭秘
  7. qt中如何模拟按钮点击_如何快速在 Shopify 中加入按钮
  8. java点击菜单项文字显示在窗体上_java点击菜单项弹出窗口怎么做啊?
  9. 编程语言排行分析,从2009到2019。
  10. .jar文件无法运行的解决方法
  11. 在FTP服务器上搜索指定文件
  12. java无法解析类型数据,”无法解析类型 这是简介引用的类文件要求 从必需的 .class 文件间接引用了“——解决方法...
  13. Nginx配置不带www自动跳转到www域名
  14. raphael用法学习
  15. 用循环不定式来证明冒泡排序的正确性
  16. Jarvis-OJ WEB 多题writeup
  17. java 整数相除 小数点_java整数相除保留小数
  18. CUDA编程之CUDA流
  19. php 时间戳转化为日期,PHP 时间戳转换为时间(多久前)
  20. 【放置江湖】弱联网手游,网络协议分析修改。每天签到可获得35元宝

热门文章

  1. 在.NET5 中读取Excel文件,评估下参加神秘献祭会的几位子民
  2. AI前沿论坛会议—文字智能和游戏智能总结篇
  3. [PCB]PCB光板生产过程中板子弯曲或翘起原因分析
  4. pubmedy安装不聊了_在PubMed基本检索框中输入immunology检索出的文献为1115106 篇,这是利用了PubMed哪一种检索技术?...
  5. 水利水电课程指导之建筑制图基础_第二章测试试题
  6. 一本纯属个人的兴趣的书籍即将在未来面世
  7. フローのパラメータについて
  8. 多因子量化选股(1)
  9. 上亿会员 为b站会员购众筹项目打下消费基础
  10. Python绘图实例3:正八边形绘制