读书人

Hibernate From 引发的查询性能有关问

发布时间: 2012-10-25 10:58:57 作者: rapoo

Hibernate From 引发的查询性能问题思考

在 javaeye 上几乎到处可见 hibernate 相关文章,计论它的性能问题也不是一天两天了, 在搜索几乎无结果的情况下,发表这篇文章..

?

由于在项目中使用了hibernate,刚开始使用确实很爽,随着数据量的增加,一条查询语句明显让服务器内存直线上升,hibernate 的性能问题也越来越突出,于是开始优化代码,增加了 fetch_size,batch_size,inverse ,lazy 的配制,性能有了些好转,但是问题还是很明显,

?

后来上网查找,网上有人提出可以取消表之间的关联,查询时用HQL通过标识建立关联,但这样一来项目改动太大,后来无意中看到一篇文章里提到使用 Hibernate查询到的对象都会执行实例化后放入缓存中,于是我猜测,问题可能就在这里了.

?

既然查询到的对象会放入缓存,那如果我直接查询某个字段呢? (想到就做,一直是我的一个习惯),测试发现这对系统性能确实有很大影响了,于是项目中的所有hibernate查询语句,都由查询对象改为查询具体字段,

?

这时让我疑惑的是,既然查询具体字段能提升性能,那hibernate 为什么还要有个from 查询呢?少写几个属性名而牺牲性能怎么想都不划算吧..

?

关于hibernate 的一点疑问,欢迎大家拍砖... :D

</p>
</div>
<p><br/>我记得Query、Criteria接口有个方法叫setCatchable(boolean cachable)</p>
<p>?</p>
<p>Enable caching of this query result set. </p>
<p>Parameters:<br/>cacheable - Should the query results be cacheable?</p>
<p>?</p>
<p>?</p>

读书人网 >软件架构设计

热点推荐