关于读文件然后写入数据库的效率问题

J寻 2008-01-31 11:56:49
我现在要完成的是一个读取文件记录的并把记录截取成若干串,再插入到数据库中,
数据库用的是ORACLE,我现在做的是10万条记录要10多分钟,怎么样才能提高效率呢
不知道从什么方面下手啊!!!!望 高人指点
...全文
98 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
treeroot 2008-02-02
  • 打赏
  • 举报
回复
1. 读文件一定要设置较大的缓存
2. 采用批处理插入(比如一次1万条)

连接池和多线程用处不大(如果是多个文件可以用多线程)
老紫竹 2008-01-31
  • 打赏
  • 举报
回复
我猜测一下你目前的使用方法
1 读取一条记录
2 获取数据库连接
3 写入数据库
4 关闭连接

你可能采取的优化,
1 使用了数据源,这样获取连接的速度会快,我估计你已经使用了
2 启用事务 con.setAutoCommit(false);在所有的insert执行完毕之后再con.commit();
3 如前面所说,启用批量插入,速度能提高的1-2分钟完成
4 启用多线程,估计10个足以,速度能提高到15-30秒完成

我评估的硬件为,P4 3.0单CPU客户端和服务器各一台。 是我以前的测试服务器和我自己用的机器。
老紫竹 2008-01-31
  • 打赏
  • 举报
回复
如果你能配合多线程的话,10万条,我算算。。。
应该在15-30秒内完成
老紫竹 2008-01-31
  • 打赏
  • 举报
回复
请参考这个文章的,Statement 优化 部分,核心就是批量插入。
http://www.java2000.net/viewthread.jsp?tid=370
sieperboy 2008-01-31
  • 打赏
  • 举报
回复
java2000.net高人啊 !!
枫叶rain 2008-01-31
  • 打赏
  • 举报
回复
可以使用数据库连接池来连接
然后用线程池进行插入数据就可以了

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧