索引已经建了,那就得优化你的sql文了

解决方案 »

  1.   

    我直接用sql查询是能查出数据的。
    在我的实际代码中就执行到下述代码后,就不再向下执行了。
    String hql = "from ConsumeLogs c where c.adId =" + a.getId();
    logs = consumeLogsService.getConsumeLogsByHql(hql);
    也就是执行到getConsumeLogsByHql(hql)这个方法。
    各位,还有别的想法吗?
      

  2.   

    这语句还有什么优化的,只有在oracle里进行性能优化了
      

  3.   

    正在学hibernate 应该能用的上
      

  4.   

    mysql这东西不稳定的,并且你数据量也不小。如果不能该数据库,建议改用JDBC
      

  5.   

    用JDBC也很慢,当点击上一页和下一页的时候很慢的,要等很长时间呢。
    很多大的门户网站都用hibernate架构的,他们是怎么处理大数据量的呢?
      

  6.   

    查询出一定的纪录后,清理一下session的缓存。
      

  7.   

    调整JVM占用内存的参数,给多点内存,调整。。.hbm.xml 里面batch的参数,数值大点
    如果能用延迟检索的话尽量用
      

  8.   

    写sql时尽量少*,可试试用count(id)来代替。
      

  9.   

    我这个表里的数据是随时更新的,就想各大招聘网站上的招聘信息一样,当你点击上一页或者下一页时,就可能有新的招聘信息发布,
    所以,这里不能用二级缓存吧。<prop key="hibernate.jdbc.batch_size">30</prop>因为我的那个表是独立的一个表,表里并没有关联关系。所以应该没有延迟加载吧。
     今天由于数据量过大,内存溢出了。请大家帮忙,谢谢。
      

  10.   

    什么意思?直接执行sql是成功的。
      

  11.   

    仅仅查一个count的话,不会出问题的,我的数据库中有上百万的数据,如果你查bean,肯定得分页,仔细检查一下看问题出在哪儿了吧
      

  12.   

    其实,我就是用hibernate的分页查询处理的.
      

  13.   

    20多万条数据中查询10多万条数据,索引基本没用第一次select count(*)很慢是无法避免的
    后面的应该会快些,如果还是慢的话,就建缓存
      

  14.   

    要知道框架是为了统一开发
    框架的性能可是不好
    还是用sql
    许多大公司用的是自己写的框架
      

  15.   

    我也有同样的问题
    我用的数据库是informix,
    有4张数据是1千万的表关联检索时间:count的时间也很长,有点要三分钟,有点半个小时都出不来。请各位高手指教!
    谢谢