我公司是做erp系統的,現在要求做一個款號轉數的task,由于每天款號轉數的數據量比較大,而且款號涉及的一些關聯要也要進行轉數,所以有時候會導致out of momery ,要進行修改! 原代碼是用hibernate實現的, list = gzBma00160pDAO.getTransferData(Bma00160p.class,object); if(list!=null){ for(Iterator it = list.iterator();it.hasNext();){ Bma00160p newBma00160p = new Bma00160p(); BeanUtils.copyProperties(it.next(), newBma00160p); try{ Bma00160p bma00160p = bma00160pDAO.getBma00160p(newBma00160p.getBma00160pPK()); if(bma00160p!=null){ newBma00160p.setState(BaseObject.UPDATEMODE_MODIFY); }else{ newBma00160p.setState(BaseObject.UPDATEMODE_INSERT); } newBma00160p.setDlastmodifytime(nowtime); bma00160pDAO.saveObject(newBma00160p); }catch(Exception e){ ERPTaskErrorMailListener.addMessage("BMA00160P出錯,代號: " + newBma00160p.getBma00160pPK()); LogUtils.warn("bma00160p error : " + newBma00160p); e.printStackTrace(); } } list.clear(); } 每個表查詢轉數的代碼如上,每次都通過本地的對象get遠程的對象,看有沒有存在,有則update否則insert,這樣如果數據量大,頻繁的操作數據庫是不是導致性能低下的原因呢?如果我換成jdbc,寫sql語句一次性update 或 insert 會不會性能有所提升?但這樣的話就要建立臨時表去存放本地的數據給遠程用... 望高手能給予解答,謝謝
頻繁的操作數據庫是不是導致性能低下的原因呢?
嗶嗶one
2023-04-09 13:09:25