ToFind1996
ToFind1996
2019-03-18 11:21

java GZIPOutputStream性能如何提升?

  • java

当前业务为查询库内数据压缩为gz压缩包,然后上传。现在速度很慢,已经尝试优化sql,sql查询速度提升了7倍还是无法满足需求,如何提升gz压缩速度呢?
部分代码如下:

gos = new java.util.zip.GZIPOutputStream(new BufferedOutputStream(new FileOutputStream(new File(localPath+fileName+".gz"+fileNameCrSuffix)),2*1024*1024),2*1024*1024);
        var processTime1 = System.currentTimeMillis();
        ESB.log.info(objInfo.name+"执行DTL,querysqlinfo:"+squerySqlStr);
        stmt = threadDbConn.prepareStatement(querySqlStr);
        //stmt.setFetchSize(10000);
        var sindex = 1;
        if(beginValue!=null&&endValue!=null){//判断是否分段处理
            setValue(stmt,sindex,beginValue,tempInfo.fdValueType);
            sindex++;
            setValue(stmt,sindex,endValue,tempInfo.fdValueType);
            sindex++;
        }
        if(sqlValues!=null){
            for(var j=0;j<sqlValues.length;j++){
                var index = j+sindex;
                setValue(stmt,index,sqlValues[j][1],sqlValues[j][0]);
            }
        }
        var rs = stmt.executeQuery();
        var processTime2 = System.currentTimeMillis();
        while(rs.next()){

            gos.write(rs.getString(1).getBytes(charSet));
        }
        rs.close();
        stmt.close();
        gos.finish();
        gos.flush();
        gos.close();
        var processTime3 = System.currentTimeMillis();
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐

换一换