Performance 带有1行的resultset.next()占用的时间太多

Performance 带有1行的resultset.next()占用的时间太多,performance,jdbc,Performance,Jdbc,我在从Java程序查询Sybase时遇到性能问题。我放置了多个日志进行调试,发现查询本身花费了预期的时间,但是,调用resultset.next()似乎花费了相同的时间 查询类似于“select count(*)from”,始终返回1行。我的Java代码是这样的 resultset = statement.executeQuery(); logger.debug("After fetching resultset"); while(resultset.next(){ numberOfA

我在从Java程序查询Sybase时遇到性能问题。我放置了多个日志进行调试,发现查询本身花费了预期的时间,但是,调用resultset.next()似乎花费了相同的时间

查询类似于“select count(*)from”,始终返回1行。我的Java代码是这样的

resultset = statement.executeQuery();
logger.debug("After fetching resultset");
while(resultset.next(){
     numberOfAccounts = resultset.getInt(1);
}
logger.debug("After looping resultset::" +numberOfAccounts)
你知道为什么上面两个日志之间的平均间隔为200毫秒吗?已确认
语句.executeQuery()
大约需要150毫秒


我查看了谷歌,每个人似乎都在谈论增加语句
fetchSize()
。但在这种情况下,只有一行。我还在执行之前打印查询,因此非常确定它只返回1行

网络往返?此外,完全有可能在第一次获取时执行查询,而不是在执行时执行查询。只是想澄清一下,您的意思是,可能是由于网络速度缓慢,从数据库获取已执行查询的结果需要花费大量时间吗?可能有几个原因,
next()
将触发获取以从服务器检索一行或多行。因此,这至少需要网络往返(ping)+服务器端处理。正如我所说的,一个execute本身可能只做很少的工作,而实际的工作被推迟到获取时间。