Oracle高速批量速插入数据解决方案

最近做短信群发项目有一个需求,需要客户大批量(十万级)导入数据.

开始是用insert单条数据,10万条数据要20分钟

后来发现可以用insert all 一条sql一次导入500条记录,这样10万条数据只用了1.5分钟,导入速度提高了近来20倍

下面就使用insert all的心得体会记录如下.

使用方法:

sql 复制代码
insert all into table_name(col_1,col_2) values (value_1,value_2)
           into table_name(col_1,col_2) values (value_1,value_2)
           into table_name(col_1,col_2) values (value_1,value_2)
           .........................................................................
           into table_name(col_1,col_2) values (value_1,value_2)
select 1 from dual

需要注意几点:

1.此sql语法上要求后面有select,在本例中,select 1 from dual其实是没有意义的,但必须加上,维护语法上的完整性.

2.所有列数不能超过1000,超过抛出异常

3.oracle 9i版本及以上版本支持此语法

相关推荐
逃逸线LOF32 分钟前
数据源 C3PO与Druid
数据库·oracle
一只大袋鼠2 小时前
数据库知识点梳理(二):从基础操作到底层原理
数据库·oracle
betazhou2 小时前
Oracle JDBC连接串解析DNS的改进
数据库·oracle
原来是猿2 小时前
MySQL【事务下】
数据库·mysql·oracle
marsh02065 小时前
17 openclaw数据库连接池配置:避免性能瓶颈的关键
数据库·ai·oracle·编程·技术
好记忆不如烂笔头abc5 小时前
ORA-12792: Network transfer operation aborted due to TTC error 12543.
oracle
@insist1236 小时前
数据库系统工程师-数据库权限管理与触发器编程:软考核心考点与实战指南
数据库·oracle·软考·数据库系统工程师·软件水平考试
XDHCOM7 小时前
ORA-12532: TNS:invalid argument 故障解析,Oracle报错远程处理技巧与修复方法分享
数据库·oracle
zongzizz1 天前
Oracle 11g 两节点rac在机房断电重启后PL/SQL和客户端连接数据库报错ORA-12541
数据库·oracle