【发布时间】:2012-02-10 07:00:01
【问题描述】:
我使用
执行本机查询entityManager.createNativeQuery(sqlQuery);
query.setMaxResults(maxResults);
List<Object[]> resultList = query.getResultList();
为了加快查询速度,我想包含FIRST_ROWS(n) 提示或使用WHERE ROWNUM > n 进行限制。
使用检测,我发现OraclePreparedStatement.executeQuery 确实更快,但在EJBQueryImpl.getResultList 上花费了更多时间,导致整体性能非常差。更详细地看,我发现每 10 次调用 ResultSet.next() 所花费的时间大约与 executeQuery 本身()一样长。当我省略查询提示或 ROWNUM 条件时,这种奇怪的行为就会停止,然后每 10 次调用 resultset.next 就比其他的要低一些,但只有 2 毫秒而不是 3 秒。
【问题讨论】:
标签: java oracle jdbc eclipselink