首页 新闻 会员 周边 捐助

B/S架构用模板文件如Excel之类的导入数据到数据库,请问怎样能让速度最优化,用户体验好

0
悬赏园豆:10 [已解决问题] 解决于 2013-03-11 16:27

  如题!需要速度最优化,用户体验好,还有就是新增模板的可扩展性。求最优方案!

hardy_Wang的主页 hardy_Wang | 初学一级 | 园豆:17
提问于:2013-03-05 17:33
< >
分享
最佳答案
0

额,研究过这个,一般最后的结果是基本上没扩展性。因为要考虑到用户的体验,就要满足用户最基本的数据要求,所以对EXCEL模板的数据格式,乃至标题都做了类似于一一对应的判断,这样做的好处在于能保证用户数据的有效性,剔除无效数据,减少维护。但很悲催的就是,基本上没法扩展。模板一变,代码也要变。另外,关于导入速度的问题,如果数据量比较少,比如说几千条左右,用这种方式没问题,因为时间也就几秒钟。但是如果数据量很大,比如几十万条,上百万条,就不能用这种方式了。因为,数据太多的话,传输和存储都需要消耗大量的资源,这时候我们需要考虑数据存储过程中的意外情况,比如断点存储,延时存储,批量存储等,这一般需要使用专门的中间构件。

收获园豆:10
allon6318 | 小虾三级 |园豆:858 | 2013-03-11 16:17

  和我想的大体是一样的。但想看看有没有好的方法!

hardy_Wang | 园豆:17 (初学一级) | 2013-03-11 16:28
其他回答(3)
0

最优方案暂时没研究。

1.通过上传插件上传excel到服务器。

2.通过ado读取数据。

3.写数据到数据库。

建议:上传文件增加等待和进度提示,读数据和写数据多测试,找到最优方案。至于模板可扩展性这个就要看读和写之间的约定了。

来自北方 | 园豆:599 (小虾三级) | 2013-03-06 08:55

貌似这个只能说实现上传!

支持(0) 反对(0) hardy_Wang | 园豆:17 (初学一级) | 2013-03-06 09:49
0

一次上传几千条,没有特别做优化,也就是每条去判断数据一致性,最后一次性插入,也就2,3秒的时间。

清海扬波 | 园豆:825 (小虾三级) | 2013-03-06 13:53
0

先用 sqlbulkcopy 把数据批量添加到临时表,在用存储过程来处理 新增或者修改。这样是最快的,但扩展性不太好。

geass.. | 园豆:1821 (小虾三级) | 2013-03-11 11:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册