作者tnsshnews (tnsshnews)
看板java
標題[問題] Hibernate Performancej Issue
時間Wed Nov 7 18:10:51 2012
Dear alll,
請問如果有大量資料要透過loop寫入資料庫, 使用hibernate是不是會比直接用jdbc呢?
Long starttime = System.currentTimeMillis();
for(int i=0; i<1000; i++){
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx= session.beginTransaction();
M02Mst mst = new M02Mst();
mst.setGrpId(i);
mst.setGrpAcptTime(new Date());
session.close();
}
Long endtime = System.currentTimeMillis();
logger.info("Total spent:"+(endtime-starttime)/1000+" secs");
>>>>>>>>這樣要花6秒, 但如果將session抽出去外面, 如下
Long starttime = System.currentTimeMillis();
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx= session.beginTransaction();
for(int i=0; i<1000; i++){
M02Mst mst = new M02Mst();
mst.setGrpId(i);
mst.setGrpAcptTime(new Date());
}
session.close();
>>>>>>>>這樣只要2秒, 但還是覺得很慢, 我朋友直接用jdbc, 不需要1秒就全做完了,
請問是不是hibernate一定會較慢呢?
謝謝
Long endtime = System.currentTimeMillis();
logger.info("Total spent:"+(endtime-starttime)/1000+" secs");
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.79.199.63
推 PsMonkey:連 return 都搞不太清楚就要用 Hibernate? 11/07 18:19
→ PsMonkey:古老有一篇文章在 Z-10-2-2,無聊可以去看一下 11/07 18:21
推 qrtt1:手冊都寫那麼多了 Batch processing 沒去看一下!? 11/07 22:28
→ tnsshnews:謝謝提供batch process方向 11/08 11:03