BatchSize와 OracleBulkCopy에 BatchSize를 제공하지 않는 것의 차이점은 무엇입니까?

ado.net c# oracle sql sqlbulkcopy

문제

OracleBulkCopy 에서 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 로의 삽입 성능 향상 (소요 시간 단축)
  • 무거운 삽입 (삽입의 많은 행)을 즉시 조작

그러나 그것은 또한 우리가 염려해야 할 몇 가지 단점을 가지고 있습니다 :

  • 대량 복사에 행이있을 때 문제를 해결하는 것이 더 어렵습니다. 오류가 발생했습니다.
  • 일괄 복사 프로세스가 성공적으로 완료 되었더라도 일부 데이터 유형 정렬 또는 변환 문제 (유니 코드 및 비 유니 코드)가 삽입 또는 절단 된 데이터의 일부 데이터가 제대로 삽입되지 않을 수 있음 (데이터가 더티 데이터)

자세한 내용은 다음 웹 사이트에서 찾을 수 있습니다. http://docs.oracle.com/html/E10927_01/OracleBulkCopyClass.htm#CHDCDEIA 또는 .NET을 사용하여 Oracle에 대량 삽입



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.