datatable의 행 수를 기준으로 sqlbulkcopy 일괄 처리 크기 조정

c# c#-4.0 sqlbulkcopy

문제

각 배치가 완전히 채워져 있는지 확인해야합니까? 즉, 12028 행의 datatable을 가지고 있다면, 나는 단지 10k의 배치 크기를 사용할 수 있으며, 자동으로 2 개의 일괄 처리를 생성 할 수 있습니까? 1은 10k, 2028은 1입니다.

감사.

수락 된 답변

MSDN 에 따르면 : SqlBulkCopy.BatchSize -

SqlBulkCopy 인스턴스가 UseInternalTransaction 옵션을 지정하지 않고 선언 된 경우 한 번에 행이 서버 BatchSize 행에 보내지지만 트랜잭션 관련 작업은 수행되지 않습니다. UseInternalTransaction이 유효한 경우 행의 각 일괄 처리가 별도의 트랜잭션으로 삽입됩니다.

BatchSize 속성은 언제든지 설정할 수 있습니다. 대량 복사가 이미 진행중인 경우 현재 배치는 이전 배치 크기에 따라 크기가 조정됩니다. 후속 배치는 새 크기를 사용합니다. BatchSize가 처음에 0이고 WriteToServer 작업이 이미 진행되는 동안 변경된 경우 해당 작업은 데이터를 단일 배치로로드합니다. 같은 SqlBulkCopy 인스턴스에 대한 모든 후속 WriteToServer 작업은 새로운 BatchSize를 사용합니다.

이 정보를 토대로 배치 크기를 10k 행으로 설정하고 12k +를 제공하면 여러 배치가 작성됩니다.



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