Qual è la differenza tra dare BatchSize e non dare BatchSize per OracleBulkCopy

ado.net c# oracle sql sqlbulkcopy

Domanda

Qualcuno può dare le prestazioni e la differenza di comportamento tra l'utilizzo di BatchSize e senza utilizzare BatchSize in OracleBulkCopy . Attualmente non specifica BatchSize . My BatchSize può variare da 100 a 200000. Si prega di suggerire l'approccio migliore.

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

Risposta popolare

Il lotto ottimale dovrebbe essere impostato intorno a 500 ~ 5000.

Il professionista dell'utilizzo di copia bulk è:

  • aumentare le prestazioni (ridurre il tempo richiesto) di inserimento in db
  • manipolare con inserimento pesante (molte file di inserimento) al volo

Tuttavia ha anche alcuni svantaggi che dobbiamo preoccuparci:

  • è più difficile risolvere i problemi quando c'è una riga nella copia di massa che colpisce l'errore
  • Potrebbe non essere possibile sapere se l'inserimento o il troncamento dei dati potrebbe avere problemi di confronto o di modifica dei tipi di dati (unicode e non Unicode), alcuni dati potrebbero non essere stati inseriti correttamente (dati sporchi) anche se il processo di copia bulk è stato eseguito correttamente

Ulteriori discussioni lo puoi trovare sul seguente sito web: http://docs.oracle.com/html/E10927_01/OracleBulkCopyClass.htm#CHDCDEIA o Bulk Insert in Oracle utilizzando .NET.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché