В чем разница между предоставлением BatchSize и отсутствием BatchSize для OracleBulkCopy

ado.net c# oracle sql sqlbulkcopy

Вопрос

Может ли кто-нибудь дать разницу в производительности и поведении между использованием BatchSize и без использования BatchSize в OracleBulkCopy . В настоящее время я не указываю BatchSize . Мой BatchSize может варьироваться от 100 до 200000. Пожалуйста, предложите наилучший подход.

try
{
     var columnMapping =
         from table in orgTable.Columns.Cast<DataColumn>()
         select
             new OracleBulkCopyColumnMapping(table.ColumnName, table.ColumnName);
     using (var bulkcopy
         = new OracleBulkCopy(ConnectionString, OracleBulkCopyOptions.Default))
     {                    
         bulkcopy.DestinationTableName = GoldOrgTable;                                        
         foreach (var mapping in columnMapping)
             bulkcopy.ColumnMappings.Add(mapping);
         bulkcopy.BulkCopyTimeout = TimeOut.Value;
         bulkcopy.WriteToServer(orgTable);
         orgTable.Dispose();
     }
     return true;
}

Популярные ответы

Оптимальный пакетный размер должен быть установлен около 500 ~ 5000.

Про использование массового копирования:

  • увеличить производительность (уменьшить требуемое время) вставки в db
  • манипулировать с тяжелой вставкой (много строк вставки) на лету

Однако у него также есть некоторые минусы, которые нам нужно учитывать:

  • его сложнее устранить неполадки при наличии строки в массовой копии - ошибка
  • Не знаю, может ли вставка или усечение данных иметь некоторую сортировку или преобразование типа данных (unicode и non-unicode), некоторые данные могут быть неправильно вставлены (грязные данные), даже если процесс массовой копии успешно выполнен

Дальнейшее обсуждение вы можете найти на следующем веб-сайте: http://docs.oracle.com/html/E10927_01/OracleBulkCopyClass.htm#CHDCDEIA или Bulk Insert для Oracle с использованием .NET



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему