当前位置: 代码迷 >> J2EE >> hibernate查询非常慢解决办法
  详细解决方案

hibernate查询非常慢解决办法

热度:457   发布时间:2016-04-17 23:54:02.0
hibernate查询非常慢
本帖最后由 MrSad 于 2014-05-29 10:08:27 编辑
最近遇到一个特别奇怪的问题,希望能有高手帮忙指点下。

1. 下面是我写的HQL


2. 实际上这段HQL里面的参数都是NULL,所有有效的where条件只有“zt=3

3. 下面是用hibernate查询的打印日志。就执行这个HQL需要7秒的时间,太夸张了。


4.  把日志里面的SQL拿出来放到sqlplus下执行,只需要0.2秒


5. 如果直接通过JDBC的方法执行这个SQL,发现时间也只需要1秒。

6. 如果我把HQL里的其他查询条件去掉,只留下“zt=3”,hibernate查询速度就只有1秒了。


请问下,慢的问题有可能出现在哪里呢?

------解决方案--------------------
查询条件多,关联多,必然会慢。hibernate要把HQL中的对象映射到表上去完成查询。
------解决方案--------------------
1、HQL需要解析你这复杂语句就很浪费时间
2、子查询较多。


------解决方案--------------------
引用:
但我传的值 是null,所以应该是没影响的。直接放到plsql里面执行 完全没有影响到速度


跟你传不传null有什么关系?传不传null不一样需要解析。
------解决方案--------------------
有子查询一般都很慢
  相关解决方案