1、针对Oracle数据库而言
![](/icons/90246dou.gif)
Fetch Size 是设定JDBC
![](/icons/90246de.gif)
Statement读取数据
![](/icons/90246de.gif)
时候每次从数据库中取出
![](/icons/90246de.gif)
记录条数
![](/icons/90246dou.gif)
![](/icons/90246yi.gif)
般设置为30、50、100
![](/icons/90246dou2.gif)
Oracle数据库
![](/icons/90246de.gif)
JDBC驱动默认
![](/icons/90246de.gif)
Fetch Size=15
![](/icons/90246dou.gif)
设置Fetch Size设置为:30、50
![](/icons/90246dou.gif)
性能会有明显提升
![](/icons/90246dou.gif)
如果继续增大
![](/icons/90246dou.gif)
超出100
![](/icons/90246dou.gif)
性能提升不明显
![](/icons/90246dou.gif)
反而会消耗内存
![](/icons/90246dou2.gif)
即在Hibernate配制文件中进行配制:
< property name="hibernateProperties">
< props>
< prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
< /prop>
< prop key="hibernate.show_sql">false< /prop>
< !-- Create/update the database tables automatically when the JVM starts up
< prop key="hibernate.hbm2ddl.auto">update< /prop> -->
< !-- Turn batching off for better error messages under PostgreSQL
< prop key="hibernate.jdbc.batch_size">100< /prop> -->
< prop key="hibernate.jdbc.batch_size">50< /prop>
< /props>< /property>
2、如果是超大
![](/icons/90246de.gif)
系统
![](/icons/90246dou.gif)
建议生成htm文件
![](/icons/90246dou2.gif)
加快页面提升速度
![](/icons/90246dou2.gif)
3、不要把所有
![](/icons/90246de.gif)
责任推在hibernate上
![](/icons/90246dou.gif)
对代码进行重构
![](/icons/90246dou.gif)
减少对数据库
![](/icons/90246de.gif)
操作
![](/icons/90246dou.gif)
尽量避免在数据库查询时使用in操作
![](/icons/90246dou.gif)
以及避免递归查询操作
![](/icons/90246dou.gif)
代码质量、系统设计
![](/icons/90246de.gif)
合理性决定系统性能
![](/icons/90246de.gif)
高低
![](/icons/90246dou2.gif)
4、 对大数据量查询时
![](/icons/90246dou.gif)
慎用list
![](/icons/90246kh.gif)
或者iterator
![](/icons/90246kh.gif)
返回查询结果
![](/icons/90246dou.gif)
(1). 使用List
![](/icons/90246kh.gif)
返回结果时
![](/icons/90246dou.gif)
Hibernate会所有查询结果
![](/icons/90246chushi.gif)
化为持久化对象
![](/icons/90246dou.gif)
结果集较大时
![](/icons/90246dou.gif)
会占用很多
![](/icons/90246de.gif)
处理时间
![](/icons/90246dou2.gif)
(2). 而使用iterator
![](/icons/90246kh.gif)
返回结果时
![](/icons/90246dou.gif)
在每次
![](/icons/90246diaoyong.gif)
iterator.next
![](/icons/90246kh.gif)
返回对象并使用对象时
![](/icons/90246dou.gif)
Hibernate才
![](/icons/90246diaoyong.gif)
查询将对应
![](/icons/90246de.gif)
对象
![](/icons/90246chushi.gif)
化
![](/icons/90246dou.gif)
对于大数据量时
![](/icons/90246dou.gif)
每
![](/icons/90246diaoyong.gif)
![](/icons/90246yi.gif)
次查询都会花费较多
![](/icons/90246de.gif)
时间
![](/icons/90246dou2.gif)
当结果集较大
![](/icons/90246dou.gif)
但是含有较大量相同
![](/icons/90246de.gif)
数据
![](/icons/90246dou.gif)
或者结果集不是全部都会使用时
![](/icons/90246dou.gif)
使用iterator
![](/icons/90246kh.gif)
才有优势
![](/icons/90246dou2.gif)
5、在
![](/icons/90246yi.gif)
对多、多对
![](/icons/90246yi.gif)
![](/icons/90246de.gif)
关系中
![](/icons/90246dou.gif)
使用延迟加载机制
![](/icons/90246dou.gif)
会使不少
![](/icons/90246de.gif)
对象在使用时方会
![](/icons/90246chushi.gif)
化
![](/icons/90246dou.gif)
这样可使得节省内存空间以及减少数据库
![](/icons/90246de.gif)
负荷
![](/icons/90246dou.gif)
而且若PO中
![](/icons/90246de.gif)
集合没有被使用时
![](/icons/90246dou.gif)
就可减少互数据库
![](/icons/90246de.gif)
交互从而减少处理时间
![](/icons/90246dou2.gif)
6、对含有关联
![](/icons/90246de.gif)
PO(持久化对象)时
![](/icons/90246dou.gif)
若default-cascade="all"或者 “save-update”
![](/icons/90246dou.gif)
新增PO时
![](/icons/90246dou.gif)
请注意对PO中
![](/icons/90246de.gif)
集合
![](/icons/90246de.gif)
赋值操作
![](/icons/90246dou.gif)
![](/icons/90246yinwei.gif)
有可能使得多执行
![](/icons/90246yi.gif)
次update操作
![](/icons/90246dou2.gif)
7、 对于大数据量新增、修改、删除操作或者是对大数据量
![](/icons/90246de.gif)
查询
![](/icons/90246dou.gif)
和数据库
![](/icons/90246de.gif)
交互次数是决定处理时间
![](/icons/90246de.gif)
最重要原因
![](/icons/90246dou.gif)
减少交互
![](/icons/90246de.gif)
次数是提升效率
![](/icons/90246de.gif)
最好途径
![](/icons/90246dou.gif)
所以在开发过程中
![](/icons/90246dou.gif)
请将show_sql设置为true
![](/icons/90246dou.gif)
深入了解Hibernate
![](/icons/90246de.gif)
处理过程
![](/icons/90246dou.gif)
尝试区别
![](/icons/90246de.gif)
方式
![](/icons/90246dou.gif)
可以使得效率提升
![](/icons/90246dou2.gif)
尽可能对每个页面
![](/icons/90246de.gif)
显示
![](/icons/90246dou.gif)
对数据库
![](/icons/90246de.gif)
操作减少到100----150条以内
![](/icons/90246dou2.gif)
越少越好
![](/icons/90246dou2.gif)
以上是在进行Struts+hibernate+spring进行项目开发中
![](/icons/90246dou.gif)
对hibernate性能优化
![](/icons/90246de.gif)
几点心得体会
TAG:
hibernate
延伸阅读
最新评论