现在接手一个java项目 批量导入模块,需提供jsp页面上excel导入功能 求设计

现在接手一个批量导入模块,需提供jsp页面上excel导入excel中数据需做有效性校验(数据格式),重复校验,重复个数校验等四五种校验,校验时的关联查询表有两个,视图一... 现在接手一个批量导入模块,需提供jsp页面上excel导入
excel中数据需做有效性校验(数据格式),重复校验,重复个数校验等四五种校验,校验时的关联查询表有两个,视图一个,数据量都为亿级,
向数据库插入数据时部分字段为excel中数据,部分为页面传至后台数据,导入完毕后返回页面需显示导入数据条数,成功条数,失败条数,并给出失败记录下载链接,供用户导出
已确定excel中数据量为10万以下,
我现在的做法是在java代码中逐条校验,然后将校验成功的数据根据校验结果插入数据库中不同的表,校验失败的数据及失败原因等插入失败记录表,
现在我导入6000条数据时就需要4分钟左右,严重影响效率

现在我的思路有两个:
一个是读excel后后台起多线程来校验数据格式并批量插入excel中数据至临时表,完毕后再来做联合查询查出无效数据条数,并再起多个线程来分别将有效的数据导入对应的表,无效的数据导入失败记录表

第二种是在后台将excel文件转为csv格式并生成sqlloader控制文件,然后调用Sqlldr 命令将数据全导入临时表,然后再起多线程来做数据的校验工作及导入工作

系统平台为linux 服务器为jboss
页面等待时间必须控制在一分钟以内,最好在20秒内能完成,不知哪种方法更有可行性,或者有牛人能提出更好的方案就万分感谢了

第二种方法我只是在网上看到这方面的资料,从没用过,不知可行性如何
展开
 我来答
百度网友845f74e61
2012-06-13 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1627万
展开全部
一样的问题,在另一个里讨论吧,我看那边有人回复了一些。
bd9006
2012-06-13 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
觉得,要彻底解决问题,还要从“10万行的Excel”下手,为何会有这么大的文件、如果是人手录入为何不能用网页录入、如果从DB导出为何不直接做接口、………………
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
time4rock
2012-06-13 · TA获得超过1703个赞
知道小有建树答主
回答量:963
采纳率:66%
帮助的人:318万
展开全部
如果只有20秒,上载文件都不够吧。建议通过异步处理。就是接受用户上传的文件,通过后台排队处理,处理完成后,邮件发还给用户。
其它优化:
1、校验,插入等代码也尽可能优化。一次性插入后,在库表中进行比对。
2、关联表索引正确,有效。
3、逐条检验数据增加磁盘I/O,建议批量比对处理。
4、比对长字符串效率极低,尽量避免。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式