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版本及以上版本支持此语法

相关推荐
b***46241 小时前
从 SQL 语句到数据库操作
数据库·sql·oracle
P***84394 小时前
解决Spring Boot中Druid连接池“discard long time none received connection“警告
spring boot·后端·oracle
字节拾光录4 小时前
手机号存储避坑指南:从20亿级数据库实践看,为什么VARCHAR才是终极答案
java·数据库·oracle
p***924810 小时前
深入理解与实战SQL IFNULL()函数
数据库·sql·oracle
百***490021 小时前
Redis-配置文件
数据库·redis·oracle
q***33371 天前
UNION 和 UNION ALL 的区别:深入解析 SQL 中的合并操作
数据库·sql·oracle
4***571 天前
数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(一).创建基础表
数据库·mysql·oracle
@游子1 天前
SQL注入语法和介绍(一)
数据库·oracle
q***33371 天前
oracle 12c查看执行过的sql及当前正在执行的sql
java·sql·oracle
数白2 天前
Oracle 数据迁移最佳实践(不使用第三方工具)
数据库·oracle