日期:2014-05-17  浏览次数:20699 次

网站首页优化问题?
问题是这样的,网站首页需要显示一些记录,感觉速度有些慢,
查询出6条数据,以list形式存到session里,jsp获取session里的list,将6条数据取出来
显示到页面上,

下面是代码,是否有问题?还能怎么优化下。。。。可以给点建议吗


jsp页面:
HTML code

List listGg=(ArrayList)request.getAttribute("listGg");




action层:
Java code


     String hql2="from News order by operateDate desc ";
        List listGg=dao.find(hql2, 0, 6);
        request.setAttribute("listGg", listGg);



dao层:

Java code

public List find(String hql, int offset, int size)
            throws HibernateException {

        Session session = (Session) HibernateBase.getCurrentSession();
        Transaction transaction = null;
        try {
            transaction = HibernateBase.getTransaction(session);
            Query query = session.createQuery(hql);
            query.setFirstResult(offset);
            query.setMaxResults(size);
            List results = query.list();
            transaction.commit();
            return results;
        } catch (HibernateException he) {
            if (transaction != null) {
                transaction.rollback();
                HibernateBase.closeTransaction();
            }
            HibernateBase.closeSession();
            throw he;
        } finally {
            HibernateBase.closeTransaction();
            HibernateBase.closeSession();
        }
    }



------解决方案--------------------
你在执行SQL语句前后加上开始时间和结束时间,在Transaction加上时间,看看到底是取数据慢还是在客户端展现的问题。
------解决方案--------------------
只是查询把你的事务去掉吧,开启事务关闭事务都是消耗时间的
如果你的首页就只有显示这6条数据的话,速度还是慢的话,那个基本上可以肯定是查询速度的问题,是不是你这个表中数据非常多,而索引又没建好,你可以看看operateDate有没有索引,建个索引看看
------解决方案--------------------
首页的内容条目获取可以直接用对象看来获取,这个对象的某个方法返回一个list,在jsp页面中接收这个list再遍历出来就行了!
------解决方案--------------------
有个问题,为什么只取六行,就会有效率问题?要不就是你的表超级大,且没有用到索引。
按理说只取六行都很慢的话,那没办法再往下弄了。

如果是往session里放东西,也不致于慢。不知道楼主这个网站是不是哪出问题了?