hibernate如何优化

systemxgl 2010-06-12

hibernate优化

(1)LazyLoad

在LazyLoad上推介不要什么字段都采用LazyLoad方式。对于一些基本属性建议将其Lazy设置为false,而对于一些可能消耗大量内存的字段,如clob这样的字段,建议设置为true,对于集合则全部设置为lazy=true。

是否采用lazyload对系统的性能会有非常明显的影响,同时尽量不要将Detachedobject放入HTTP的session中。

(2)Cache

Cache是提升性能常用的方法。hibernate本身对Cache有很好的支持,一级缓存:session二级缓存sessionFactory.二级缓存不是必须的,由开发人员自行决定,hibernate3默认的二级缓存是EhCache,也可以切换为OsCache,JBossCache。

(3)高效的查询语句

查询语句对系统的性能有明显的影响。采用占位符式的语法查询可保证语法分析器之进行一次分析,在参数不同的情况下并不会出现重复解析的现象。

统一查询语句的编写风格,包括大小写,空格等。

(4)配置

如jdbc。fetch-size的设置等连接池的设置。

查询性能如何优化?

1.降低访问数据库的频率,减少select语句的数目

1>使用迫切左外连接或迫切内连接检索策略

2>对延迟检索或逻辑检索设置批量检索策略

3>使用查询缓存

4>对集合对象设置检索策略(FetchingStrategies)

4.1>查询抓取

4.2>子查询抓取

4.3>连接查询抓取

4.4>批量抓取

2.避免多余的加载程序不需要访问的数据

1>使用延迟检索策略

1.1>持久化对象的延迟加载

1.2>集合对象的延迟加载

1.3>属性的延迟加载

1.4>解决org.hibernate.LazyInitializationException

2>使用集合过滤

3.避免报表查询数据占用缓存

1>利用投影查询功能

4.减少select语句中的字段,从而降低访问数据库的数据量

1>利用query的iterator()方法

2>使用dynamic-insert与dynamic-update

相关推荐

LetonLIU / 0评论 2020-05-29
东方咖啡屋 / 0评论 2020-01-06