JDBC ResultSet setFetchSize
2010-02-01 18:16
369 查看
Connection conn = null; ResultSet rs = null; PreparedStatement stmt = null; try { conn = dbMgr.getConnection(); stmt = conn.prepareStatement(track_sql); rs = dbMgr.executeQuery(conn, stmt); while (rs.next()) { ret.add(rs.getLong(1)); } } finally { if (stmt != null) stmt.close(); if (rs != null) rs.close(); if (conn != null) dbMgr.releaseConnection(conn); }
When testing in Oracle, above loop is very slow. If add setFetchSize before next, the performance improve significantly
rs.setFetchSize(DbMgr.FETCH_SIZE_LARGE_ROW);
ResultSet interface also provides batch retrieval facility like Statement as mentioned above. It overrides the Statement behaviour.
Initially find the default size by using
ResultSet.getFetchSize(); and then set the size as per requirement
ResultSet.setFetchSize(50);
This feature significantly improves performance when you are dealing with retrieval of large number of rows like search functionality.
TODO: reading full tips
http://www.precisejava.com/javaperf/j2ee/JDBC.htm#JDBC114
相关文章推荐
- Oracle JDBC实现存在BUG(ResultSet::setFetchSize())?
- JDBC 查询的三大参数 setFetchSize prepareStatement(String sql, int resultSetType, int resultSetConcur)
- jdbc setFetchSize 原来是
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果
- JDBC基础-setFetchSize方法
- 正确使用MySQL JDBC setFetchSize() setMaxRows()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
- JDBC中的setFetchSize()
- No way to set FetchSize to Spring SimpleJdbcCall
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
- JDBC基础-setFetchSize方法
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryEr
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size
- hibernate的速度问题--hibernate.jdbc.fetch_size和 hibernate.jdbc.batch_size
- hibernate 批量操作 hibernate.jdbc.batch_size hibernate.jdbc.fetch_size
- mysql jdbc驱动设置fetchsize 要连接字串里有useCursorFetch=true 才行
- Hibernate 抓取策略fetch-2 (批量抓取batch-size以及hibernate.jdbc.fetch_size、hibernate.jdbc.batch_size)
- oracle setFetchsize() 优化查询速度