зафиксировать размер в весенней партии - PullRequest
1 голос
/ 15 января 2011

У меня есть список из 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;    
          }  

1 Ответ

0 голосов
/ 18 января 2011

Я всегда делаю коммит размером 500 .Я попал в эту практику после того, как использовал «SQL Manager for MySQL».Там экспорт и импорт по умолчанию установлены на 500 , и я замечаю улучшение производительности моих коммитов при восстановлении, и когда возникали проблемы, было легко возобновить работу без просто зависания консоли.

Я делаю это HQL так же, как и в SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...