BufferedWriter大量数据写文件速度慢求救
最近在维护一个比较大型系统的检索模块,这个模块的作用是将检索出来的结果写入csv文件,但是因为客户觉得速度很慢,要求改进,所以就改进了一下sql语句,但是改了之后发现,sql语句的检索速度确实提高了,但是写文件的速度慢了很多,而且验证过结果也是一样的,请问可能是什么原因导致写文件的速度大幅度下降呢?
写文件的代码如下:
Statement stmt = getCon().createStatement();
stmt.setFetchSize(1000);
rs = stmt.executeQuery(sSql);
if(rs != null)
{
while(rs.next())
{
iItiSet = iItiSet + 1;
if(strbuf.length() > 0)
{
strbuf.append("\r\n"); strbuf.append(stringwork.getNullConv(rs.getString("CSV_OUT")));
}else{
strbuf.append(stringwork.getNullConv(rs.getString("CSV_OUT")));
}
if(iItiSet == 10000)
{
bw.write(strbuf + "\r\n"); strbuf.delete(0,strbuf.length());
iItiSet = 0;
}
}
if(strbuf.length() > 0)
{
bw.write(strbuf + "\r\n");
}
}
bw.close();
顺带问一下,
1, 是不是executeQuery执行完了之后,所有的数据就在WEB服务器了,跟DB服务器没有关系了。
2, setFetchSize设的值是在executeQuery执行的时候用还是在rs循环的时候用?
谢谢!