hibernate如何优化

[color=red]hibernate优化[/color]
(1) Lazy Load
在Lazy Load 上推介不要什么字段都采用Lazy Load方式。对于一些基本属性建议将其Lazy设置为false ,而对于一些可能消耗大量内存的字段,如clob这样的字段,建议设置为true,对于集合则全部设置为lazy=true。
是否采用lazy load 对系统的性能会有非常明显的影响,同时尽量不要将Detached object 放入HTTP的 session 中。
(2) Cache
Cache是提升性能常用的方法。hibernate本身对Cache有很好的支持,一级缓存:session 二级缓存sessionFactory . 二级缓存不是必须的,由开发人员自行决定,hibernate3默认的二级缓存是EhCache ,也可以切换为OsCache,JBossCache 。
(3)高效的查询语句
查询语句对系统的性能有明显的影响。采用占位符式的语法查询可保证语法分析器之进行一次分析 ,在参数不同的情况下并不会出现重复解析的现象。
统一查询语句的编写风格,包括大小写,空格等。
(4) 配置
如jdbc。fetch-size的设置等 连接池的设置。

[color=red]查询性能如何优化?[/color]

1. 降低访问数据库的频率,减少select语句的数目
1>使用迫切左外连接或迫切内连接检索策略
2>对延迟检索或逻辑检索设置批量检索策略
3>使用查询缓存
4>对集合对象设置检索策略(Fetching Strategies)
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值