此示例主要使用setFetchSize来调整客户端内存使用,它的原理是通过数据库游标来分批获取服务器端数据,但它会加大网络交互,可能会损失部分性能。
由于游标事务内有效,故需要先关闭自动提交,最后需要执行手动提交。
// 关闭掉自动提交
conn.setAutoCommit(false);
Statement st = conn.createStatement();
// 打开游标,每次获取50行数据
st.setFetchSize(50);
ResultSet rs = st.executeQuery("SELECT * FROM mytable");
while (rs.next())
{
System.out.print("a row was returned.");
}
conn.commit();
rs.close();
// 关闭服务器游标。
st.setFetchSize(0);
rs = st.executeQuery("SELECT * FROM mytable");
while (rs.next())
{
System.out.print("many rows were returned.");
}
conn.commit();
rs.close();
// Close the statement.
st.close();
conn.close();
执行完毕后可使用如下命令恢复自动提交:
conn.setAutoCommit(true);
开源社区地址: gitee.com/opengauss/o…
详细参考文档:README.md 、 命令行参数名称及说明.md
详情查看:opengauss.org 详情查看:docs-opengauss.osinfra.cn #openGauss