Was ist der Unterschied zwischen der Angabe von BatchSize und nicht der Angabe von BatchSize für OracleBulkCopy?

ado.net c# oracle sql sqlbulkcopy

Frage

Kann jemand die Performance- und Verhaltensdifferenz zwischen der Verwendung von BatchSize und der Verwendung von BatchSize in OracleBulkCopy BatchSize OracleBulkCopy Momentan gebe ich keine BatchSize . Meine BatchSize kann von 100 bis 200000 variieren. Bitte schlagen Sie den besten Ansatz vor.

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

Beliebte Antwort

Optimale Batchgröße sollte auf 500 ~ 5000 eingestellt werden.

Die Verwendung von Massenkopie ist:

  • Erhöhen Sie die Leistung (reduzieren Sie die erforderliche Zeit) der Einfügung in db
  • manipulieren Sie mit schwerer Einfügung (viele Reihen der Einfügung) auf der Fliege

Es gibt jedoch auch einige Nachteile, die wir berücksichtigen müssen:

  • es ist schwieriger zu beheben, wenn eine Zeile in der Massenkopie einen Fehler aufweist
  • Ich weiß nicht, ob beim Einfügen oder Abschneiden von Daten eine Kollation oder ein Konvertierungsproblem für Datentypen auftreten kann (Unicode und Nicht-Unicode), einige Daten wurden möglicherweise nicht korrekt eingefügt (schmutzige Daten), obwohl der Massenkopierprozess erfolgreich durchgeführt wurde

Weitere Diskussion finden Sie auf der folgenden Website: http://docs.oracle.com/html/E10927_01/OracleBulkCopyClass.htm#CHDCDEIA oder Bulk-Insert zu Oracle mit .NET



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum