您的位置:首页 > 其它

1002--hibernate.cfg.xml的常用属性

2015-06-28 15:22 489 查看
•C3P0 数据库连接池属性
–hibernate.c3p0.max_size: 数据库连接池的最大连接数
–hibernate.c3p0.min_size: 数据库连接池的最小连接数
–hibernate.c3p0.timeout: 数据库连接池中连接对象在多长时间没有使用过后,就应该被销毁
–hibernate.c3p0.max_statements: 缓存Statement对象的数量
–hibernate.c3p0.idle_test_period: 表示连接池检测线程多长时间检测一次池内的所有链接对象是否超时.
连接池本身不会把自己从连接池中移除,而是专门有一个线程按照一定的时间间隔来做这件事,
这个线程通过比较连接对象最后一次被使用时间和当前时间的时间差来和timeout做对比,
进而决定是否销毁这个连接对象。
–hibernate.c3p0.acquire_increment: 当数据库连接池中的连接耗尽时,同一时刻获取多少个数据库连接

•其他
–show_sql:是否将运行期生成的SQL输出到日志以供调试。取值true | false
–format_sql:是否将
SQL 转化为格式良好的 SQL .取值true | false
–hbm2ddl.auto:在启动和停止时自动地创建,更新或删除数据库模式。取值create | update | create-drop | validate
–hibernate.jdbc.fetch_size
–hibernate.jdbc.batch_size

•hibernate.jdbc.fetch_size:
实质是调用 Statement.setFetchSize()方法设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数。
–例如一次查询1万条记录,对于Oracle的JDBC驱动来说,是不会1次性把1万条取出来的,而只会取出fetchSize条数,
当结果集遍历完了这些记录以后,再去数据库取fetchSize条数据。因此大大节省了无谓的内存消耗。
Fetch Size设的越大,读数据库的次数越少,速度越快;Fetch Size越小,读数据库的次数越多,速度越慢。
Oracle数据库的JDBC驱动默认的Fetch Size = 10,是一个保守的设定,根据测试,当FetchSize=50时,
性能会提升1倍之多,当fetchSize=100,性能还能继续提升20%,Fetch
Size继续增大,性能提升的就不显著了。
并不是所有的数据库都支持Fetch Size特性,例如MySQL就不支持
•hibernate.jdbc.batch_size:
设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小,
类似于设置缓冲区大小的意思。batchSize越大,批量操作时向数据库发送sql的次数越少,速度就越快。
–测试结果是当BatchSize=0的时候,使用Hibernate对Oracle数据库删除1万条记录需要25秒,
Batch Size = 50的时候,删除仅仅需要5秒!Oracle数据库batchSize=30的时候比较合适。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: