使用高偏移时性能下降

时间:2014-08-19 09:11:23

标签: jpa spring-data

例如,我想从citizen表中检索包含大约18K行的所有数据。

String sqlResult = "SELECT * FROM CITIZEN";

Query query = getEntityManager().createNativeQuery(sqlResult);
query.setFirstResult(searchFrom);
query.setMaxResults(searchCount); // searchCount is 20

List<Object[]> listStayCit = query.getResultList();

一切都很好,直到“searchFrom”偏移很大(17K或其他)。例如,需要3-4分钟才能获得20行(17,000到17020)。那么有没有更好的方法来加快速度,而不是通过调整数据库?

P / s:抱歉我的英文不好

1 个答案:

答案 0 :(得分:-1)

您可以使用批量查询。 这里有一篇很好的解释问题解决方案的文章: http://java-persistence-performance.blogspot.in/2010/08/batch-fetching-optimizing-object-graph.html