首页 新闻 会员 周边 捐助

Hibernate的Save执行速度问题..

0
悬赏园豆:40 [待解决问题]

工具:VS2010

数据库:Oracle11g

技术:Hibernate

当数据库表中数据量很大  800万条记录。  采用Hibernate往数据库中插入数据(没有insert,只能用save)。

发现,插入一条数据的时间是20秒。太夸张了!

 

各位高手,首先,如何插入提高效率?

其次,如何用VS2010监控Hibernate的执行过程?

kingab520的主页 kingab520 | 菜鸟二级 | 园豆:335
提问于:2010-11-03 15:51
< >
分享
所有回答(3)
0

首先,你直接去ORACLE写insert语句插入数据要多久?

Gray Zhang | 园豆:17610 (专家六级) | 2010-11-03 16:31
直接写insert很快的。 但是,用了Hibernate,还继续用insert,感觉没有体现出hibernate的优点!
支持(0) 反对(0) kingab520 | 园豆:335 (菜鸟二级) | 2010-11-03 16:50
你试试这几个函数用时怎么样: 打开事务 提交事务 显式地不使用事务去插入数据
支持(0) 反对(0) Gray Zhang | 园豆:17610 (专家六级) | 2010-11-03 17:23
0

多用用session.clear();

因为涉及到得数据库中数据量太大,导致Hibernate的二级缓存过大,会影响速度。所以过程中多多的清除缓存就好了

茂茂 | 园豆:2898 (老鸟四级) | 2010-11-03 17:18
是说,在进行Hibernate操作时,先clear一下吗?
支持(0) 反对(0) kingab520 | 园豆:335 (菜鸟二级) | 2010-11-04 08:57
比如你要循环插入800万条数据,那么你在插入了100条的时候就清理一下
支持(0) 反对(0) 茂茂 | 园豆:2898 (老鸟四级) | 2010-11-04 09:40
就是要处理过程中多清楚缓存,否则你一个查询就800万条记录,下面在操作数据库肯定慢啊
支持(0) 反对(0) 茂茂 | 园豆:2898 (老鸟四级) | 2010-11-04 09:42
0

使用无状态的Session+批量插入 效率超高

http://home.cnblogs.com/group/topic/6221.html

李永京 | 园豆:3114 (老鸟四级) | 2010-11-03 22:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册