休眠query.list()很慢

时间:2020-08-06 13:31:03

标签: java hibernate

 Collection<Domain> collection = hibernateQuery.list();
 Hibernate: select * from ( SELECT rr.C1 as C10_, rr.C7 as C70 from table_name rr  WHERE (1=1) AND 
 rr.c3>(sysdate- 45) ) where rownum <= ?

上面的来自Hibernate的查询只需几百毫秒即可执行。但是执行上述查询并返回列表的list()调用需要花费一分钟以上的时间(有时> 2分钟)来执行。我不知道是什么原因造成的。我能够从AppDynamics跟踪查询时间,但无法深入了解为什么list()调用花费一分钟以上的时间

返回的记录数约为8-9k(有时可能更多)。该表大约有80万条记录,并且查询中引用的c3列已建立索引。我已将query.setMaxresults值设置为50k。实际查询中的列数为24。为简单起见,我在此处减少了查询中的列

list()方法对返回的结果进行一些处理,这很耗时。有人以前遇到过这个问题吗?任何帮助表示赞赏。

休眠版本:2.0,JDK-1.8,数据库-Oracle 11.2.0.4

谢谢

0 个答案:

没有答案