0 0

Java批量数据库操作,如何性能优化?5

List<Student> list = new ArrayList<Student>();

for(int i=0;i<list.size();i++){
Student st = (Student)list.get(i);

Object o = getHibernateTemplate().get(Student.class, st.getStudentId());


if(null == o){
...

Address addr = new Address();
...

getHibernateTemplate().saveOrUpdate(addr);

getHibernateTemplate().saveOrUpdate(o);

getSession().flush();
getSession().evict(addr);
getSession().evict(o);
} else {
...
Address addr = methodForFindAddr(o);
...
getHibernateTemplate().saveOrUpdate(hql);

getHibernateTemplate().saveOrUpdate(o);

getSession().flush();
getSession().evict(addr);
getSession().evict(o);
}

}

现在实现如上面代码所示,如果list数据量比较小的话,还可勉强凑合,若超过数万条数据,需耗费大量时间,有什么好的建议对此进行优化?

我曾试两种方法:1.过线程池的方式,可方法methodForFindAddr可能会出现同步问题,线程之间数据串了。
2.将所有saveOrUpdate的对象抽取出来,循环批量保存,每循环50次,flush一次。可是两个循环耗费的时间仍然很长。
2014年6月03日 09:11

1个答案 按时间排序 按投票排序

0 0

http://greemranqq.iteye.com/blog/1830212  有个批量操作,看能不能给你点提示。

在hibernate 或者 spring 中,也提供了批量的方法,你可以查一下API

2014年6月03日 09:39

相关推荐

    使用JAVA内存数据库h2database性能优化

    【使用JAVA内存数据库h2database性能优化】 在开发应用程序时,我们经常遇到性能瓶颈,特别是当涉及到大量的IO操作时。数据库访问是这类问题的主要来源,特别是在处理高并发、实时计算和海量数据监控的情况下。例如...

    java 多线程操作数据库

    7. **性能优化**:为了进一步提高多线程数据库操作的性能,可以考虑使用批处理(Batch Processing),即在一次数据库调用中发送多条SQL语句。此外,合理调整数据库和应用服务器的配置参数,如连接池大小、线程数量等...

    java数据库简单操作

    在Java编程中,数据库操作是不可或缺的一部分,尤其是在开发企业级应用程序时。本主题将深入讲解如何使用Java连接数据库以及执行基本的CRUD(创建、读取、更新、删除)操作。我们将主要关注JDBC(Java Database ...

    java操作数据库 导出excel

    在实际项目中,可能还需要考虑性能优化,如批量写入Excel,错误处理,以及兼容不同版本的Excel格式等问题。提供的压缩包文件中包含了Apache POI 2.5.1版本的相关jar包,这些库文件是实现上述功能的基础。记得在你的...

    Mybatis与JDBC批量插入MySQL数据库性能测试

    总的来说,理解和掌握批量插入技术,无论是使用JDBC还是Mybatis,都能帮助我们优化数据库操作,提升系统性能。对于大型项目,合理利用批量插入策略,结合数据库的性能调优,可以显著提高服务响应速度和用户体验。

    JAVA数据库小工具

    对于大型数据库,性能优化是必不可少的。某些工具提供性能监控和分析功能,帮助用户找出数据库的瓶颈,优化SQL查询,提升系统整体性能。 7. **跨平台支持** 由于JAVA的跨平台特性,这些数据库小工具往往能在...

    JAVA数据库基本操作指南.doc

    Java数据库基本操作主要涉及以下几个关键知识点: 1. **数据库连接**:在Java中,与数据库交互的第一步是建立连接。通常有两种方式: - **通过DriverManager**:首先需要加载数据库驱动(例如`Class.forName()`)...

    java连接数据库代码

    Java连接数据库是应用程序与数据库交互的基础,通过Java的JDBC(Java Database Connectivity)API,开发者可以实现对多种数据库系统的操作。...在实际操作中,还需要注意事务管理、性能优化等高级特性。

    Java实现数据库迁移同步

    8. **性能优化**:对于大规模数据迁移,可以考虑批量插入、多线程处理、分区策略等优化手段,提高迁移效率。 在项目`SynchroForDate`中,可能包含了实现这些步骤的具体Java代码。文件名暗示了可能关注的是日期相关...

    java数据库应用程序编程指南

    14. **性能优化**:了解索引、查询优化、事务粒度调整、连接池配置等技巧,可以显著提升Java数据库应用程序的性能。 以上就是“Java数据库应用程序编程指南”中可能涵盖的主要知识点,学习和熟练掌握这些内容,对于...

    JAVA操作cassandra数据库

    在Java编程环境中,Cassandra数据库是一个高性能、分布式、NoSQL型的数据存储系统。它由Apache Software Foundation维护,设计用于处理大规模数据,具有高可用性和可扩展性。本篇将深入探讨如何使用Java来操作...

    java数据库设计技巧

    程序实现级优化是指在编写Java代码时采取的优化措施,以提高程序对数据库的操作效率。 1. **连接管理**: - **连接池**:使用连接池管理数据库连接,避免频繁创建和销毁连接带来的性能开销。 - **连接释放**:...

    java多个数据库实现数据同步

    - **性能优化**:减少同步延迟,避免过度负载,可能需要对同步频率、批量更新和缓存策略进行调整。 综上所述,Java实现多数据库数据同步是一个涉及多种技术和策略的复杂问题,需要根据具体业务需求和系统架构来选择...

    java批量执行SQL

    ### Java批量执行SQL知识点解析 在Java开发过程中,经常需要与数据库进行交互,尤其是在处理大量数据时,如何高效地执行SQL语句变得尤为重要。本文将详细介绍如何利用Java进行批量SQL执行,包括其背景、实现原理、...

    mybatis plus 5种批量操作性能测试

    这有助于评估不同批量操作在不同数据规模下的表现,为实际项目提供优化建议。 测试步骤可能包括: - 准备测试数据:生成一定数量的数据集合。 - 执行批量操作:分别使用五种方式执行插入操作。 - 记录和分析结果:...

    java 数据库编程.pdf

    数据库连接和查询优化是提高数据库性能的关键,包括合理的数据库设计、索引优化、查询优化和连接池配置。Java开发者需要理解如何编写高效的SQL语句和利用JDBC提供的高级特性来优化性能。 知识点九:Web应用中的...

    Hbase调用JavaAPI实现批量导入操作

    这篇博客“Hbase调用Java API实现批量导入操作”聚焦于如何利用Java编程语言高效地向HBase中批量导入数据。在这个过程中,我们将探讨以下几个关键知识点: 1. **HBase架构**: HBase是基于列族的存储模型,数据被...

    数据库批量数据拷贝

    这允许用户根据需求定制拷贝过程,可能是为了保护敏感信息,或者优化目标数据库的性能。例如,如果某个字段包含大文本或者BLOB数据,可能需要排除在外以减少拷贝时间和存储需求。 综上所述,"数据库批量数据拷贝"是...

    Java 高性能系统常见设计与优化

    高性能系统的设计和优化需要考虑多方面的因素,如系统的架构、Java VM 的优化、数据库设计和优化、数据库访问等。只有通过系统的设计和优化,才能提高系统的性能和可靠性。 知识点: 1. 高性能系统的典型体系结构...

Global site tag (gtag.js) - Google Analytics