gpt4 book ai didi

java - CachedRowSet 比 ResultSet 慢?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:04 26 4
gpt4 key购买 nike

在我的 java 代码中,我使用 select 语句访问 oracle 数据库表。我收到很多行(大约 50.000 行),因此 rs.next() 需要一些时间来处理所有行。

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 一次检索所有数据,而每次调用 rs.next 时,ResultSet 都会检索数据。

部分代码如下:

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 将结果缓存在内存中,即您不再需要连接。因此,它首先“变慢”了。

A CachedRowSet object is a container for rows of data that caches its rows in memory, which makes it possible to operate without always being connected to its data source.

-> http://download.oracle.com/javase/1,5.0/docs/api/javax/sql/rowset/CachedRowSet.html

关于java - CachedRowSet 比 ResultSet 慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7672800/

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