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一次。可是两个循环耗费的时间仍然很长。
相关推荐
Java向数据库中插入大量数据时的优化
〖课程目录〗: Day1:秒杀场景及优化核心知识.rar;c Day2:高性能秒杀方案框架解读.rar Day3:性能及压力测试.rar Day4:分布式服务器部署.rar ...Day14:数据库优化.rar Day15:mysql数据库集群搭建.rar 软件与资料.rar/?1~$
│ Java面试题67:数据库优化之数据库表设计遵循范式.mp4 │ Java面试题68:选择合适的数据库引擎.mp4 │ Java面试题69:选择合适的索引.mp4 │ Java面试题70:使用索引的一些技巧.mp4 │ Java面试题71:数据库优化...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
通过一个应用实例,批量插入百万条数据,然后进行查询分析优化 !!
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
性能优化是Oracle数据库管理的一项重要任务。Oracle数据库的性能优化可从共享内存、段、数据的组织方式、事务等方面实施。事务优化是性能优化的方法之一,它从应用程序的角度出发,对数据库的访问进行优化,从而提高...
性能优化 分层优化 系统级别 中间件级别 JVM级别 代码级别 分段优化 前端 web应用 服务应用 资源池 数据库 大数据与nosql zookeeper hadoop hbase mongodb strom spark java语言 语言语法基础 ...
redis使用常见问题及性能优化思路 redis高可用及高并发实战 缓存击穿、缓存雪崩预防策略 Redis批量查询优化 Redis高性能集群之Twemproxy of Redis 数据存储 MongoDB NOSQL简介及MongoDB支持的数据类型分析 ...
它还提供了更高级的技术服务和功能,这些功能将极大地支持通过优化和分区技术,可以实现高容量和高性能批处理作业。简单以及复杂的高容量批处理作业都可以以高度可扩展的方式利用框架来处理大量信息。”我做了什么...
18.5 查询性能优化 18.5.1 iterate()方法 18.5.2 查询缓存 18.6 小结 18.7 思考题 第19章 Hibernate高级配置 19.1 配置数据库连接池 19.1.1 使用默认的数据库连接池 19.1.2 使用配置文件指定的...
SQLJ 简介 什么是SQLJ 准备开始 使用SQLJ SQLJ定制 小结 第9章 数据库性能问题 本地编译机制 挑选适当的JDBC驱动程序 连接池 事务和批量查询 存储过程和JDBC准备语句 JDBC...
18.5 查询性能优化 18.5.1 iterate()方法 18.5.2 查询缓存 18.6 小结 18.7 思考题 第19章 Hibernate高级配置 19.1 配置数据库连接池 19.1.1 使用默认的数据库连接池 19.1.2 使用配置文件指定的...
18.5 查询性能优化 18.5.1 iterate()方法 18.5.2 查询缓存 18.6 小结 18.7 思考题 第19章 Hibernate高级配置 19.1 配置数据库连接池 19.1.1 使用默认的数据库连接池 19.1.2 使用配置文件指定的...
18.5 查询性能优化 18.5.1 iterate()方法 18.5.2 查询缓存 18.6 小结 18.7 思考题 第19章 Hibernate高级配置 19.1 配置数据库连接池 19.1.1 使用默认的数据库连接池 19.1.2 使用配置文件指定的...
数据库索引优化脚本 官方技术支持 贡献 作者 Sym 的主要作者是 Daniel 与 Vanessa,所有贡献者可以在这里看到。 我们非常期待你加入到这个项目中,无论是使用反馈还是代码补丁,都是对 Sym 一份满满的爱...
本系统具有良好的扩展性和可定制性,开发者可以根据实际需求进行二次开发,如添加新的功能模块、优化系统性能等。同时,系统提供详细的文档和示例代码,帮助开发者快速上手和定制开发。 **适用场景:** 本系统适用...