jdbc操作oracle数据库,导出excel,要求10分钟内执行完毕,并下载到客户端;
现在问题是,执行生成excel文件时发生内存溢出,分析原因有可能是遍历resultset生成数据到excel时产生问题;
分批次生成excel文件只生成了第一次查询出的数据。
请求一个好的解决方案,并指点相应代码。
谢谢各位资深大虾!

解决方案 »

  1.   

    是tomcat?那就扩大tomcat的内存,要不就限制下一次导出的数据量,分多次导出
      

  2.   


    百万级数据量肯定需要遍历刷到excel,内存溢出是由于遍历出现的问题;
    之前说过分批次导出是不会出现内存溢出,但是到客户端后只有第一次查询的数据,后续的数据没有生成到客户端
      

  3.   

    excel一个页签只能放6万多行。百万的要放到多少个页签里?
      

  4.   

    excel 2007 行数已经扩充很多啦
      

  5.   

    这个业务谁提出来的?那这个EXCEL还打得开吗?
      

  6.   

    你可以在服务器上生成多个excel,压缩后再到客户端
      

  7.   

    这个问题可以解决
    首先 生成TSV文件,让后把TSV拷贝到EXCEL2007中就可以了。速度没有问题,已经测试过。
      

  8.   

    用excel打开百万级数据会疯掉的!!
      

  9.   

    太疯狂了,百万级数据的EXCEL
      

  10.   

    首先你必须导入到多个EXCEL吧
    查询出的数据用异步存储起来
    你可以用开3-5个线程 同时处理 这样速度快
      

  11.   

    靠,百万啊?5、6万就内存溢出了!
    好像一个excel不能储存百万数据吧,
    最多十万左右吧!
      

  12.   

    一次导出!!!这么疯狂的想法也只有疯狂的脑袋才能提出来这样的需求。还是想办法自动分页,自动创建新的Excel,自动分批导出吧!!!一个用户百万,N个用户得N个百万!太疯狂了!!!
      

  13.   


    请问现在写Excel的部分是用什么技术实现的?  
      

  14.   

    这是一个疯狂的举动,但切不说速度如何,即便是打开excel就是一个问题
      

  15.   

    POI很慢的。
    10万条数据,导出用了24小时。
    不符合要求的
      

  16.   

    数据库写个job每天跑,然后生成上一天的数据文件,用户要查哪天的直接给他调文件,数据这么多,实时的读取数据库,客户不疯你不疯,数据库都会疯的……