欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于如何避免大数据量的有关问题

更新时间: 2014-01-05 02:11:14 责任编辑: Author_N1

 

高分求教关于如何处理大数据量的问题
现在的需求是将一个含有100万条数据的csv或者txt文件,通过java程序导入到数据库中,
我测试过分批次导入,就是每次导入1部分数据,但是效率还是很低下。又使用过调用oracle的sqlldr这个工具导入,效果还是不行,所以求教有做过大数据量处理经验的朋友帮忙,小弟感激不尽!!!
--参考方法--
100W数据很少啊,应该很快的,是不是服务器性能不行啊,
--参考方法--
1)可以指定并行度+hint
   alter session enable parallel dml;
   insert /*+parallel().....
2)利用临时表,大表的数据过滤到最小范围之后存到临时表里,同时临时调大pga_aggregate_target和改用TTG(临时表空间组),让insert 尽可能在pga区完成
3)索引,分区也可根据表结构和业务需求来建立,进而加快insert
4)可以利用外部表,不必导入,直接用
5)数据泵 --expdp impdp,这个应该可以满足你的要求,我的同事曾经用它导过TB级的数据
--参考方法--
引用:
引用:
100W数据很少啊,应该很快的,是不是服务器性能不行啊,
还有个问题,如果通过jdbc插入千万级数据,有什么好办法能提高性能吗?请教


那你就用批处理。。batch 



--参考方法--
你用sqlload在服务上导入,不要在客户端。应该没有问题的
--参考方法--
引用:
引用:引用:
100W数据很少啊,应该很快的,是不是服务器性能不行啊,
还有个问题,如果通过jdbc插入千万级数据,有什么好办法能提高性能吗?请教

那你就用批处理。。batch


使用SQL预编译PrepareStatement和batch.
--参考方法--
使用sqlloader操作100W应该很快的,表中有没有索引,如果有索引有是采用维持索引入库的方式,要慢一点是可以理解的,如果采用dirct=true这种方式入库,应该很快,但是索引被破坏了。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:11:14
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6732/
本文WWW.DOC100.NET DOC100.NET版权所有。