什么时候setFetchSize()和setMaxResults()实际上用Oracle 11g过滤结果集?

时间:2015-04-10 16:12:29

标签: java oracle hibernate oracle11g

如果我有一个名为ACCOUNTS的表,其中有一百万条记录并且我发出以下条件查询,那么何时会对所返回的记录数进行过滤?当.setFetchSize(100)是和不包含在查询中时,我对查询结果是否会有所不满感兴趣。使用setFetchSize(100),Oracle是否只获取100条记录然后对它们进行排序?

Criteria criteria = session.createCriteria(Accounts.class)
    .setFetchSize(100)
    .setMaxResults(100)
    .addOrder(Order.desc("acct_id"));

1 个答案:

答案 0 :(得分:0)

我认为这个数字应该被解释为内置到sql查询本身的限制(例如WHERE ROWNUM< = 100)。您可以通过启用Hibernate SQL日志记录并检查给定查询来确保这一点。