网站首页优化问题?
问题是这样的,网站首页需要显示一些记录,感觉速度有些慢,
查询出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里放东西,也不致于慢。不知道楼主这个网站是不是哪出问题了?