为了避免丢失更新,要使用某种锁定策略,共有两种锁定策略:悲观锁定或乐观锁定。
悲观锁定(pessimistic locking):
用户在屏幕上修改值之前,这个锁定方法就要起作用。例如,用户一旦有意对他选择的某个特定行(屏幕上可见)执行更新,如单击屏幕上的一个按钮,就会放上一个锁。
悲观锁定仅用于有状态(stateful)或有连接(connected)的环境,这是20世纪90年代中期客户/服务器应用中的一种流行做法。但现在采用有状态方式的连接方法已经不太常见了(不过并没有完全消失),特别是随着20世纪90年代中后期应用服务器的出现,有状态连接更是少见。
悲观锁定的例子:
select ...
- 23:45
- 浏览 (324)
- 评论 (0)
- 分类: Hibernate相关
在处理大数据量时,会有大量的数据缓冲保存在Session的一级缓存中,这缓存大太时会严重显示性能,所以在使用Hibernate处理大数据量的,可以使用session.clear()或者session. Evict(Object) 在处理过程中,清除全部的缓存或者清除某个对象。
2) 对大数据量查询时,慎用list()或者iterator()返回查询结果,
1. 使用List()返回结果时,Hibernate会所有查询结果初始化为持久化对象,结果集较大时,会占用很多的处理时间。
2. 而使用iterator()返回结果时,在每次调用iterator.next()返回对象并使用对象时 ...
- 23:36
- 浏览 (508)
- 评论 (0)
- 分类: Hibernate相关
Hibernate主要从以下几方面来优化查询性能:
1.降低访问数据库的频率,减少select语句的数目。实现手段包括:
(1) 使用迫切左外连接或迫切内连接检索策略。
(2) 对延迟检索或立即检索策略设置批量检索数目。
(3) 使用查询缓存。
2.避免多余加载程序不需要访问的数据。实现手段包括:
(1) 使用延迟检索策略
(2) 使用集合过滤。
3.避免报表查询数据占用缓存。实现手段为利用投影查询功能,查询出实体的部分属性。
4.减少select语句中的字段,从而降低访问数据库的数据量。实现手段为利用Query的iterate()方法。
...
- 23:35
- 浏览 (335)
- 评论 (0)
- 分类: Hibernate相关
1、针对oracle数据库而言,Fetch Size 是设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数,一般设置为30、50、100。Oracle数据库的JDBC驱动默认的Fetch Size=15,设置Fetch Size设置为:30、50,性能会有明显提升,如果继续增大,超出100,性能提升不明显,反而会消耗内存。
即在hibernate配制文件中进行配制:
1
2
3 &nbs ...
- 23:32
- 浏览 (151)
- 评论 (0)
- 分类: Hibernate相关
1、针对oracle数据库而言,Fetch Size 是设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数,一般设置为30、50、100。
- 23:32
- 浏览 (131)
- 评论 (0)
- 分类: Hibernate相关
- 浏览: 72225 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
Spring AOP四种创建通知( ...
我一直想知道如何拦截某个类中特定的方法,而不是所有的方法?
-- by yourgame -
HashTable和HashMap的区 ...
这么多总结,还算你的这个不错,谢谢,学习
-- by lysmart_8 -
鼠标移动距离点击次数及键 ...
-- by fengtotoer -
处理Date对象时进行格式化 ...
好
-- by wuha_yu -
Webwork的FileUploadInte ...
我想知道如何取消息掉struts2的文件上传拦截器. fileuploadint ...
-- by jems






评论排行榜