当前业务为查询库内数据压缩为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();