hibernate数据持久化,使用hibernate技术实现数据库持久化时

  hibernate数据持久化,使用hibernate技术实现数据库持久化时

  最近有一些关于项目中是否使用Hibernate测试大数据量性能的总结。

  1)

  在处理大量数据时,Session的一级缓存中会存储大量的数据缓冲区,当缓存过大时会严重表现出性能,所以在使用Hibernate处理大量数据时,可以

  使用session.clear()或session。Evict(Object)清除所有缓存或清除进程中的对象。

  2)查询大量数据时,慎用list()或iterator()返回查询结果,

  1.当使用List()返回结果时,Hibernate将所有查询结果初始化为持久对象。当结果集很大时,会占用大量处理时间。

  但是,当使用iterator()返回结果时,每次调用iterator.next()返回对象并使用对象时,Hibernate都会调用查询来初始化相应的对象。

  对于大量的数据,每个查询调用将花费更多的时间。当结果集很大,但包含大量相同的数据,或者不是所有的结果集都将被使用时使用。

  迭代器()具有优势。

  3.对于大量的数据,使用qry.scroll()可以获得更好的处理速度和性能。而且可以直接向前和向后滚动到结果集。

  3)虽然Hibernate可以表达复杂的数据关系进行关联操作,但是请谨慎使用,这样在数据关系相对简单的情况下,会获得更好的效率,尤其是关联比较深的时候,性能会很差。

  4)添加带有关联POs(持久对象)的POs时,如果default-cascade=all 或 save-update ,请注意在PO中对集合的赋值操作,因为这可能会使更新操作再次执行。

  5)在一对多和多对一的关系中,使用延迟加载机制会使很多对象在使用时进行初始化,可以节省内存空间,减轻数据库的负载。此外,如果不使用PO中的集合,它可以减少相互数据库之间的交互,从而减少处理时间。

  对于添加、修改、删除或查询大量数据,与数据库的交互次数是决定处理时间的最重要因素。减少交互次数是提高效率的最好方法,所以在

  在开发过程中,请将show_sql设置为true,多了解Hibernate的处理过程,尝试不同的方式来提高效率。

  7) Hibernate是基于JDBC的,但是Hibernate是对JDBC的优化。使用Hibernate的缓冲机制会提高性能,比如使用L2缓存和查询缓存。命中率高的话性能会有很大提升。

  8) Hibernate可以通过设置hibernate.jdbc.fetch_size、hibernate.jdbc.batch_size等属性来优化Hibernate。

  转自:http://tech.it168.com/a2008/1229/261/000000261610.shtml

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: