例如,我想从包含大约18K行的citizen表中检索所有数据。
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左右)。例如,获取20行( 17,000到17,020行)需要3-4分钟。因此,有没有更好的方法来更快地获得它,而不是通过调整DB?
P/s:很抱歉我的英语不好
发布于 2014-09-08 16:09:27
您可以使用批处理查询。这里有一篇很好的文章,解释了你的问题的解决方案:http://java-persistence-performance.blogspot.in/2010/08/batch-fetching-optimizing-object-graph.html
https://stackoverflow.com/questions/25379622
复制相似问题