如何插入数据更快? 在java代码中,有一个ArrayList,其中都是insert语句我每次从其中取1000条,executeBatch,当数据8万条时,插入时间为2分左右但是40万条时,插入时间超过了半小时,太慢了.请问有何比较好的办法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用sql的hint/*+APPEND*/直接插入到表的最后,可以提高速度.insert /*+append*/ into test1 select * from test4 ; 这些sql语句是通过java读文件数据生成的,可以吗? 具体的我也没有试过不知道可行不 create or replace procedure (sqlArray){} --sqlArray sql 数组 sql 数组 应该是oracle 用type 方法定义的也就是说 要把 java 的 arrayList 变成 oracle 的数组, 不知道能不能行,也不知道能不能提高速度等待高手解答!!! 1.并行插入参见楼上2.去掉表的log。这个作用更大 1. 用绑定变量2. insert /*+ append */ .... as select3. sqlloader 原来是insert into tbl1 (...) value(...)改为insert /* +APPEND */ into tbl1 select seq1.nextval,'xxx','xxx',33 from dual;这样hint是否有效? 因为insert语句里边都是值,每次都要解释语句。1。可以把数据都写到文件里,用SQL*loader加载,性能提高10倍。2。写一个insert语句,使用bind变量,打开游标。用游标,bind变量加载,性能提高9倍。 我试验也是1万条一次比较好。但最主要是bind方法,你是否能一次向存储过程提交1万行? 索引可以先删除,但primary key需保留以防重码。 建议sqlloader 处理,快多了 不要分批插入,一次插入40万条再commit就可以,前提是UNDO TABLESPACE要足够大. oracle字段分组问题 pro*c 连接数据库 undefined reference to `ECPGget_sqlca' long raw select 很慢 一个分组统计的问题,有没有高手来看看 SQL语句怎样写 高分相赠!!!!希望我的意思大家能明白。 oracle9I用imp语法权限倒不进去的问题 (急)简单问题:怎样实现ORACLE数据库中日期(DATE)数据类型的比较以及查询? 为什么存储函数的行数被限定了(在线等待,up有分) 求助,为什么我连最基本的查询都是并行模式的 游标问题 如何定时运行一批处理文件
直接插入到表的最后,可以提高速度.
insert /*+append*/ into test1 select * from test4 ;
具体的我也没有试过不知道可行不 create or replace procedure (sqlArray){} --sqlArray sql 数组 sql 数组 应该是oracle 用type 方法定义的也就是说 要把 java 的 arrayList 变成 oracle 的数组, 不知道能不能行,也不知道能不能提高速度等待高手解答!!!
2.去掉表的log。这个作用更大
2. insert /*+ append */ .... as select
3. sqlloader
改为
insert /* +APPEND */ into tbl1 select seq1.nextval,'xxx','xxx',33 from dual;这样hint是否有效?
1。可以把数据都写到文件里,用SQL*loader加载,性能提高10倍。
2。写一个insert语句,使用bind变量,打开游标。用游标,bind变量加载,性能提高9倍。
但最主要是bind方法,你是否能一次向存储过程提交1万行?