我有一个从数据库返回的游标,执行时间为 31ms(毫秒)。
但是当我使用这个超过 1500 行的游标来获取行时
ResultSet rs = (ResultSet)cstm.getObject(6);
while(rs.next()){
system.out.println("...");
}
只需简单地遍历光标的每一行就需要超过 40 秒(40000 毫秒)
可以做什么?
最佳答案
事实上,默认情况下 JDBC 使用 10 的提取大小。
因此,如果您不设置更大的值,您将恰好为下一条记录调用数据库 150 次...,无需解释往返的缺点。
您所要做的就是通过将 fetchSize
设置为.. 100 来测试性能:
statement.setFetchSize(100);
您可以根据您的环境使用这个数字来提高性能。
关于java - 结果集 - 游标 : rs. next() 花费大量时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10085846/