1

我有一个包含 500,000 条记录的列表。我正在使用批量更新代码在数据库中插入数据。我应该在一次批量插入中发送这么多记录吗?或者我应该使用提交大小以 50000 的间隔提交。如何设置提交大小?

try   
    {  
                 strInsertQry = "INSERT INTO file_upload_tbl_xm"  
                            + "(rec_id,fupload_id)"  
                            + "values" + "(UPLOAD_S.nextval,"  
                            + " ? " //   
                            +  ")";  

                 getJdbcTemplate().getDataSource().getConnection().setAutoCommit(false);  


                 int[] updateCounts = getJdbcTemplate().batchUpdate(strInsertQry,new BatchPreparedStatementSetter()   
              {  
                       public void setValues(PreparedStatement ps, int i) throws SQLException {  
                           FileDataDTO dataDTO = (FileDataDTO)lstSqlFinalData.get(i);  
                           ps.setInt(1,dataDTO.getIntFuploadId());  

                       }  
                       public int getBatchSize() {  
                            return lstSqlFinalData.size();  
                       }  
                   } );  
                 //intResult = updateCounts[0];  
//                 getJdbcTemplate().getDataSource().getConnection().commit();  
                 return true;    
          }  
4

1 回答 1

0

我总是提交大小为500。在我使用“SQL Manager for MySQL”之后,我开始了这种做法。那里的导出和导入默认为500,我注意到在恢复时提交的性能有所提高,当出现问题时,很容易恢复而无需让控制台挂起。

我正在做 HQL 以及 SQL。

于 2011-01-18T04:23:28.447 回答