在我的java代碼中,我使用select語句訪問oracle數據庫表。 我收到很多行(約50.000行),所以rs.next()
需要一些時間來處理所有行。CachedRowSet比ResultSet慢嗎?
using ResultSet, the processing of all rows (rs.next) takes about 30 secs
我的目標是加快這個過程,所以我改變了代碼,現在使用CachedRowSet
:
using CachedRowSet, the processing of all rows takes about 35 secs
我不明白爲什麼CachedRowSet
比正常ResultSet
慢,因爲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查詢從Oracle控制檯上獨立運行多久? –