Hibernate HQL优化学习笔记

来源:互联网 发布:淘宝hot怎么弄 编辑:程序博客网 时间:2024/05/29 19:30

转载于:http://developer.51cto.com/art/200909/154466.htm

 

本文向大家介绍Hibernate HQL优化,可能好多人还不了解Hibernate HQL优化,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。依照Hibernate帮助文档,一些网络书籍及项目经验整理而成,只提供要点和思路,具体做法可以留言探讨,或是找一些更详细更有针对性的资料。

初用Hibernate的人也许都遇到过性能问题,实现同一功能,用Hibernate与用JDBC性能相差十几倍很正常,如果不及早调整,很可能影响整个项目的进度。

大体上,对于Hibernate性能调优的主要考虑点如下:
◆数据库设计调整
◆HQL优化
◆API的正确使用(如根据不同的业务类型选用不同的集合及查询API)
◆主配置参数(日志,查询缓存,fetch_size, batch_size等)
◆映射文件优化(ID生成策略,二级缓存,延迟加载,关联优化)
◆一级缓存的管理
◆针对二级缓存,还有许多特有的策略
◆事务控制策略。

1.数据库设计
◆降低关联的复杂性
◆尽量不使用联合主键
◆ID的生成机制,不同的数据库所提供的机制并不完全一样
◆适当的冗余数据,不过分追求高范式

2.Hibernate HQL优化

HQL如果抛开它同Hibernate本身一些缓存机制的关联,Hibernate HQL优化技巧同普通的SQL优化技巧一样,可以很容易在网上找到一些经验之谈。

3.主配置
◆查询缓存,同下面讲的缓存不太一样,它是针对HQL语句的缓存,即完全一样的语句再次执行时可以利用缓存数据。但是,查询缓存在一个交易系统(数据变更频繁,查询条件相同的机率并不大)中可能会起反作用:它会白白耗费大量的系统资源但却难以派上用场。
◆fetch_size,同JDBC的相关参数作用类似,参数并不是越大越好,而应根据业务特征去设置
◆batch_size同上。
◆生产系统中,切记要关掉SQL语句打印

原创粉丝点击