如果设置了setMaxResults,则Hibernate快速获取

时间:2014-12-11 22:45:29

标签: oracle performance hibernate fetch

有一个简单的SQL查询,它只获取一个记录。数据库是oracle。

以下是简单查询:

select *
from APPEALCASE appealcase0_
where appealcase0_.caseNumber='BAXXXXX00' and appealcase0_.DELETED_FLAG='N' 

当我使用hibernate获取此行时,响应时间为500ms,这很慢,因为它必须非常快且持续10毫秒。但是当我将hibernate查询对象中的MaxResults设置为1(一)时,响应时间提高到15ms。 虽然我的问题已得到解决,但我仍然感到困惑的是如何将MaxResults设置为1可以大大改善响应时间。谁能解释一下这个?

1 个答案:

答案 0 :(得分:0)

嗯,这对我来说很合乎逻辑。由于您告诉Oracle最多检索一条记录,因此一旦找到记录就会停止搜索更多记录。如果你不这样做,它会扫描整个表(或索引)以找到符合搜索条件的所有记录。

您应该检查的是,如果您在caseNumber列上定义了索引。