¿Cuál es la diferencia entre dar BatchSize y no dar BatchSize para OracleBulkCopy?

ado.net c# oracle sql sqlbulkcopy

Pregunta

¿Alguien puede dar la diferencia de rendimiento y comportamiento entre usar BatchSize y sin usar BatchSize en OracleBulkCopy ? Actualmente no especifico BatchSize . Mi BatchSize puede variar de 100 a 200000. Por favor, sugiera el mejor enfoque.

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;
}

Respuesta popular

El tamaño de lote óptimo debe establecerse alrededor de 500 ~ 5000.

El pro de usar copia masiva es:

  • Aumente el rendimiento (reduzca el tiempo requerido) de inserción en db
  • manipular con inserción pesada (muchas filas de inserción) sobre la marcha

Sin embargo, también tiene algunos inconvenientes que debemos tener en cuenta:

  • es más difícil solucionar los problemas cuando hay una fila en la copia masiva porque el error está llegando
  • Es posible que no sepa si la inserción o el truncamiento de los datos puede tener algún tipo de colación de tipos de datos o un problema de conversión (Unicode y no-Unicode), es posible que algunos datos no se inserten correctamente (datos sucios) aunque el proceso de copia masiva se realice correctamente.

Más información puede encontrarla en el siguiente sitio web: http://docs.oracle.com/html/E10927_01/OracleBulkCopyClass.htm#CHDCDEIA o Bulk Insert to Oracle utilizando .NET



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué