例如,我想从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:抱歉我的英文不好
答案 0 :(得分:-1)
您可以使用批量查询。 这里有一篇很好的解释问题解决方案的文章: http://java-persistence-performance.blogspot.in/2010/08/batch-fetching-optimizing-object-graph.html