hibernate之hibernate.jdbc.fetch_size和hibernate.jdbc.batch_size
来源:互联网 发布:洋气的淘宝童装店名字 编辑:程序博客网 时间:2024/06/06 07:33
hibernate之hibernate.jdbc.fetch_size和hibernate.jdbc.batch_size
----------
<property name="hibernate.jdbc.batch_size">50</property>
<property name="hibernate.jdbc.fetch_size">100</property>
这两个选项非常非常非常重要!!!将严重影响Hibernate的CRUD性能!
C = create, R = read, U = update, D = delete
Fetch Size 是设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数。例如一次查询1万条记录,对于Oracle的JDBC驱动来说,是不会1次性把1万条取出来的,而只会取出Fetch Size条数,当纪录集遍历完了这些记录以后,再去数据库取Fetch Size条数据。因此大大节省了无谓的内存消耗。当然Fetch Size设的越大,读数据库的次数越少,速度越快;Fetch Size越小,读数据库的次数越多,速度越慢这有点像平时我们写程序写硬盘文件一样,设立一个Buffer,每次写入Buffer,等Buffer满了以后,一次写入硬盘,道理相同。
Oracle数据库的JDBC驱动默认的Fetch Size=10,是一个非常保守的设定,根据我的测试,当Fetch Size=50的时候,性能会提升1倍之多,当Fetch Size=100,性能还能继续提升20%,Fetch Size继续增大,性能提升的就不显著了。因此我建议使用Oracle的一定要将Fetch Size设到50。不过并不是所有的数据库都支持Fetch Size特性,例如MySQL就不支持。MySQL就像我上面说的那种最坏的情况,他总是一下就把1万条记录完全取出来,内存消耗会非常非常惊人!这个情况就没有什么好办法了.
Batch Size是设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小,有点相当于设置Buffer缓冲区大小的意思。Batch Size越大,批量操作的向数据库发送sql的次数越少,速度就越快。我做的一个测试结果是当Batch Size=0的时候,使用Hibernate对Oracle数据库删除1万条记录需要25秒,Batch Size = 50的时候,删除仅仅需要5秒!!!
- hibernate之hibernate.jdbc.fetch_size和hibernate.jdbc.batch_size
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size
- hibernate.jdbc.batch_size和hibernate.jdbc.Fetch_Size
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size 作用
- persistence.xml中hibernate.jdbc.fetch_size和hibernate.jdbc.batch_size
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size 作用
- hibernate 批量操作 hibernate.jdbc.batch_size hibernate.jdbc.fetch_size
- hibernate 批量操作 hibernate.jdbc.batch_size hibernate.jdbc.fetch_size
- hibernate的速度问题--hibernate.jdbc.fetch_size和 hibernate.jdbc.batch_size
- hibernate的速度问题--hibernate.jdbc.fetch_size和 hibernate.jdbc.batch_size
- hibernate的hibernate.jdbc.fetch_size和 hibernate.jdbc.batch_size 25简介
- hibernate的速度问题--hibernate.jdbc.fetch_size和 hibernate.jdbc.batch_size
- 介绍---memory和client/server
- 介绍---Frame Buffer
- uva 167
- 读取MP3详情信息
- Linux下打包压缩war和解压war包
- hibernate之hibernate.jdbc.fetch_size和hibernate.jdbc.batch_size
- SceneRender 流程
- linux根文件系统制作
- 9011,9012,9013,9014,9015,9016,9017,9018,8050,8550
- ExtJs——FormPanel(读取数据、等同修改)!!!
- 如何在IPv4/IPv6环境下部署DNS服务
- PAIP.获取RSS全文输出.txt
- C/C++/C#面试题精选(3)
- POJ 1018 贪心思想