gpt4 book ai didi

Java JDBC 忽略 setFetchSize?

转载 作者:搜寻专家 更新时间:2023-10-30 21:16:33 25 4
gpt4 key购买 nike

我正在使用下面的代码

 st = connection.createStatement(
ResultSet.CONCUR_READ_ONLY,
ResultSet.FETCH_FORWARD,
ResultSet.TYPE_FORWARD_ONLY
);
st.setFetchSize(1000);
System.out.println("start query ");
rs = st.executeQuery(queryString);
System.out.println("done query");

查询返回大量 (800k) 行,并且在打印“开始查询”和“完成查询”之间需要很长时间 (~2m)。当我在查询中手动输入“限制 10000”时,“开始”和“完成”之间没有时间。处理结果需要时间,所以我想如果它只是从数据库中获取 1k 行,处理这些行,并且当它用完行时它可以在后台获取新的行,那么它总体上会更快。

我最后猜测的 ResultsSet.CONCUR_READ_ONLY 等;我错过了什么吗?

(这是一个 postgresql 8.3 服务器)

最佳答案

尝试关闭自动提交:

// make sure autocommit is off
connection.setAutoCommit(false);

st = connection.createStatement();
st.setFetchSize(1000);
System.out.println("start query ");
rs = st.executeQuery(queryString);
System.out.println("done query");

Reference

关于Java JDBC 忽略 setFetchSize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1468036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com