Hibernate优化

1、Hibernate可以通过设置hibernate.jdbc.fetch_size,hibernate.jdbc.batch_size等属性,对Hibernate进行优化。

2、使用双向一对多关联,不使用单向一对多。在one-to-many 关系中,将many一方设为主动方(inverse=false)将有助性能的改善。

3、在处理大数据量时,会有大量的数据缓冲保存在Session的一级缓存中,这缓存大太时会 严重显示性能, 所以在使用Hibernate处理大数据量的,可以使用session.clear()或者session.evict(Object)来清除全部或单个的缓存。

4、对大数据量查询时,慎用list()或者iterator()返回查询结果,<1>. 使用List()返回结果时,Hibernate会所有查询结果初始化为持久化对象,结果集较大时,会占用很多的处理时间。<2>. 而使用iterator()返回结果时,在每次调用iterator.next()返回对象并使用对象时,Hibernate才调用查询将对应的对象初始化,对于大数据量时,每调用一次查询都会花费较多的时间。当结果集较大,但是含有较大量相同的数据,或者结果集不是全部都会使用时,使用iterator()才有优势。<3>. 对于大数据量,使用qry.scroll()可以得到较好的处理速度以及性能。而且直接对结果集向前向后滚动。





参考:http://blog.csdn.net/sprita1/article/details/9289971

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页