?如何提升程序的效率---将百万条数据导出为XML文件?

时间:2021-05-01 23:31:00
我现在面临一个程序执行效率问题,即将百万条数据导出为一定格式的XML文件。
    我最开始采用的方法是用从数据库里读出数据用JDOM的方法写成一个XML文档,但是由于要占用大量内存,所以导致系统最后无相应.

    现在采用的是这种方法:
    先将数据全部读出到一个cacherowset里,然后用直接写文件的方法从cacherowset按照既定的格式写到XML文件里(读一条写一条),按这样的方法全部写完花去了大概40分钟.


    我现在想缩短导出的时间请问各位高手我该如何优化这个程序,或者哪位高手有更好的方法解决这一问题.

小弟不甚感激!!!!!!!

11 个解决方案

#1


up

#2


读一百条写一百条这样就会有效率的提高了

#3


如果这样的话,读的时候会不会花很多时间,效率一样提不起来把

#4


不明白你是说将百万条数据导出成一个XML文件还是一条数据一个XML文件

#5


就没有更好的方法了?

#6


全部导出到一个XML数据里,我写入的方式是一条数据一条数据写的
现在想请教一下,有没有优化的方法,或者还有没有更好的方法

#7


不要放到一个XML里面,可以分割的呀!类似RAR的打包原理。不过XML里面要加入一些连结信息

#8


系统架构能否再好好设计一下,有时可能重新设计结构是最好的选择了

#9


我有一个想法,但没有试过,说出来大家看可行不:
1.从数据库中查询出整个结果的主键值(只提取主键百万条数据应该没问题)
2.将主键值取出放入一个MAP中
3.利用多线程一边从MAP中提取出5000条主键,查询取得结果集,一边写XML,利用两个结果集进行交差控制.
不知道这个方法效果到底怎样,请大家多多指教

#10


即使你输出了,人家解析的人更痛苦!

我觉得,还不如直接用定格式的txt文件呢。

#11


客户不要txt文件,他们只要他们自己定义好格式的XML文件,所以麻烦就在这里

#1


up

#2


读一百条写一百条这样就会有效率的提高了

#3


如果这样的话,读的时候会不会花很多时间,效率一样提不起来把

#4


不明白你是说将百万条数据导出成一个XML文件还是一条数据一个XML文件

#5


就没有更好的方法了?

#6


全部导出到一个XML数据里,我写入的方式是一条数据一条数据写的
现在想请教一下,有没有优化的方法,或者还有没有更好的方法

#7


不要放到一个XML里面,可以分割的呀!类似RAR的打包原理。不过XML里面要加入一些连结信息

#8


系统架构能否再好好设计一下,有时可能重新设计结构是最好的选择了

#9


我有一个想法,但没有试过,说出来大家看可行不:
1.从数据库中查询出整个结果的主键值(只提取主键百万条数据应该没问题)
2.将主键值取出放入一个MAP中
3.利用多线程一边从MAP中提取出5000条主键,查询取得结果集,一边写XML,利用两个结果集进行交差控制.
不知道这个方法效果到底怎样,请大家多多指教

#10


即使你输出了,人家解析的人更痛苦!

我觉得,还不如直接用定格式的txt文件呢。

#11


客户不要txt文件,他们只要他们自己定义好格式的XML文件,所以麻烦就在这里