내 Java 코드에서 select 문으로 oracle 데이터베이스 테이블에 액세스합니다. 많은 행 (약 50,000 행)을 수신하므로 rs.next()
에는 모든 행을 처리하는 데 시간이 필요합니다.CachedRowSet이 ResultSet보다 느립니다?
using ResultSet, the processing of all rows (rs.next) takes about 30 secs
내 목표는이 과정을 빠르게하는 것입니다, 그래서 코드를 변경하고 지금
CachedRowSet
사용
다음 CachedRowSet
가 정상 ResultSet
보다 느린 이유
using CachedRowSet, the processing of all rows takes about 35 secs
이해가 안 때문에 CachedRowSet
은 모든 데이터를 즉시 검색하고 ResultSet
은 rs.next
이 호출 될 때마다 데이터를 검색합니다.
try {
stmt = masterCon.prepareStatement(sql);
rs = stmt.executeQuery();
CachedRowSet crset = new CachedRowSetImpl();
crset.populate(rs);
while (rs.next()) {
int countStar = iterRs.getInt("COUNT");
...
}
} finally {
//cleanup
}
CachedRowSet이 모든 데이터를 한 번에 가져 오더라도 해당 데이터가 반환되는 시간이 필요합니다. 원시 SQL 쿼리가 오라클 콘솔에서 가져 오는 시간은 얼마입니까? –