【发布时间】:2014-09-06 20:31:53
【问题描述】:
我必须制作一个报告实用程序,该实用程序从一个非常古老的大表中获取数据。我的搜索条件将一次取出一百万条记录,这些记录稍后将用于一些垃圾 IO 操作。我可以选择使用 JDBC,它会给我一个 ResultSet 或 Hibernate,它会给我 List。我想知道迭代时两者之间是否存在性能差异。
【问题讨论】:
-
Hibernate 将需要通过结果集来构建该列表,那么您怎么看?但是,您的查询更有可能是您应该关注的事情,而不是结果的迭代。
-
我在本地机器上做了一些测试,当为大量记录调用 query.list() 时,休眠确实需要很长时间。我必须想出一个更好的解决方案。
-
如果您将要执行的操作是合适的,您应该在迭代时执行它们(即以流方式)。这可能不合适,但比先读取内存中的所有数据然后处理它们要快。