java - 删除 ResutSet 缓存数据
问题描述
我需要查询 ResultSet 大小,并使用以下代码执行此操作:
int size =0;
if (rs != null) {
rs.last();
size = rs.getRow();
rs.beforeFirst();
}
比我用经典迭代 ResultSet :
while (rs.next()) {
// do some
}
现在,如果我的 ResultSet 中有例如 200 行,则迭代的执行时间约为 500 毫秒。如果我执行代码的第一部分(以获取 ResultSet 大小),迭代执行时间会下降到 50 毫秒。
这可能是因为数据被缓存了,有没有办法避免这种情况或清理缓存?
谢谢
大家好,感谢您的回复,所以:
1)我需要知道结果集中有多少行,因为一些查询提取了数千条记录,我需要通知用户进度百分比。为此,我显然需要最大值和中间值。
2)正如 Bob Jarvis 所说,我想像第一次一样缓慢地重新迭代结果集,这很愚蠢,但我不能以低于 100 毫秒的间隔向客户端推送消息,如果我得到上面写的 ResultSet (代码的第一部分)进度信息相当无用。例如:包含 600 行的结果集需要 500 毫秒来执行此操作:
int size =0;
if (rs != null) {
rs.last();
size = rs.getRow();
rs.beforeFirst();
}
和 60 再次迭代它,如下所示:
while (rs.next()) {
// do some
}
也许我可以浪费一些时间来更慢地迭代 resultSet,但可以向用户提供有关某些详细说明的执行时间的更准确的信息。
谢谢你们。
解决方案
推荐阅读
- c# - Syncfusion GridTemplateColumn 第一个输入的字母被忽略
- javascript - 如何禁用下拉菜单中的第一个链接(js)
- ember.js - npm 错误。弃用:ember-cli-babel 5.x 已被弃用。请至少升级到 ember-cli-babel 6.6
- php - 如何在两个字符之间进行 preg_replace,删除注释行?
- django - Serializers in Foreign Key Django
- curl - curl -X POST -d 用于 IPv6
- css - Bootstrap 4.1 Vertical Navs how to mr-auto/ml-auto badge
- python - Sort list of words based on the frequency of the word in another list
- typescript - How to type this advanced function in Typescript?
- c++ - fsanitize with gcc causing unexpected early exit