java - 结果集 - 游标 : rs. next() 花费大量时间

标签 java oracle jdbc

我有一个从数据库返回的游标,执行时间为 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/

相关文章:

java - 为什么Hashmap内部使用LinkedList而不是Arraylist

r - src_snowflakedb() 问题 : 'src_sql' is not an exported object

java - 如何将 Drawable 传递给类?

java - 如何使用 JSoup 从 HTML a 元素中选择具有特定文本的元素

.net - OracleConnections 会超时吗?如果不是,为什么我的 Oracle session (在 v$session 中)消失了?

asp.net - 连接更改对代码的影响

Java - 从混合了 UTF-8 和非 UTF-8 字符的字符串中准确计算 60 个字符

java - 无法通过java连接oracle 11g

java - 使用 JDBC 3.0 实现对嵌套事务的支持

java - 尝试使用正则表达式解析java中的复杂 boolean 表达式