Java中查询结果的rs.next()性能不佳

Java中查询结果的rs.next()性能不佳,java,postgresql,performance,Java,Postgresql,Performance,我正在尝试将查询结果导出到CSV,但即使我不尝试导出到CSV,此问题仍然存在。下面的代码与我的实际代码具有相同的逻辑和步骤,但这已经更改了标题和变量名以使其更清晰。 代码如下: rs=statement.executeQuery(查询); //CSV标题 输出行。添加(“奶牛”+d+“马”+d+“羊”+换行符); 整数=0; while(rs.next()) { //添加此选项是为了查看catalina.out中的输出速度 系统输出打印项次(编号); 数字++; Farm.LoadXmlByEn

我正在尝试将查询结果导出到CSV,但即使我不尝试导出到CSV,此问题仍然存在。下面的代码与我的实际代码具有相同的逻辑和步骤,但这已经更改了标题和变量名以使其更清晰。 代码如下:

rs=statement.executeQuery(查询);
//CSV标题
输出行。添加(“奶牛”+d+“马”+d+“羊”+换行符);
整数=0;
while(rs.next())
{
//添加此选项是为了查看catalina.out中的输出速度
系统输出打印项次(编号);
数字++;
Farm.LoadXmlByEntry(passStatement,rs.getFarm(“entry_c”),标记);
//声明变量并将其放入正确的类型,然后将其转义为不破坏CSV格式,这是一个字符串
字符串cow=String.format(“%s”,Farm.CowNumber());
字符串horse=String.format(“%s”,ticket.HorseNumber());
String sheep=String.format(“%s”,ticket.SheepNumber());
//这只是一个简单的转义序列,因此任何输入的字符都不会破坏CSV格式
cow=Escape.CSV(cow);
horse=Escape.CSV(horse);
sheep=Escape.CSV(绵羊);
输出行。添加(牛+d+马+d+羊+换行符);
}
现在,我添加了
number
作为输出,这样我可以看到
rs.next()
运行的大致速度。当查询的实际响应非常快时,结果非常慢。 这是数字计数的实时记录(当数字上升时,它确实会减慢一点,行数周期性地增加):

rs.next()
似乎导致了性能问题是否有更有效的方法来实现这一点?

不是精确的查询,而是更改为匹配上面的语法,“从Farm_表中选择cow、horse、sheep”;它还有WHERE语句的日期范围,但我没有使用它们,因为我只是选择了所有


我使用的是Java 6,我相信JDBC版本是spring-JDBC-3.0.6,我还没有设置获取大小。

还要添加一些关于您正在使用的JDBC驱动程序(版本)和获取大小的信息。(将这些信息添加到您的问题中,不要在评论中发布)附加一个类似的探查器,您将立即发现问题。我问的是您的jdbc驱动程序的版本(不是java版本)。如果你测量时间(不做system.out)需要多长时间。对于FetchSize,请参见()我猜您使用的是包含在构建路径中的jar。只需打开它并检查清单。通常情况下,信息是有的。如果您使用maven或gradle,只需检查它们各自的配置。查找实现版本而不是清单版本,然后添加一些有关您正在使用的jdbc驱动程序(版本)以及获取大小的信息。(将这些信息添加到您的问题中,不要在评论中发布)附加一个类似的探查器,您将立即发现问题。我问的是您的jdbc驱动程序的版本(不是java版本)。如果你测量时间(不做system.out)需要多长时间。对于FetchSize,请参见()我猜您使用的是包含在构建路径中的jar。只需打开它并检查清单。通常情况下,信息是有的。如果您使用maven或gradle,只需检查它们各自的配置