많은 양의 레코드를 내 응용 프로그램에로드하고 (1 백만 +) 처리량을 늘립니다. 처리는 모두 메모리에 있어야합니다.DataTable을 사용하는 것보다 SqlBulkCopy를 더 빨리 사용할 수 있습니까?
나중에 모든 (지금 수정 된) 레코드를 빈 테이블에 덤프하려고합니다.
레코드를로드하는 데 몇 초 밖에 걸리지 않으며 큰 배열의 MyRecord
으로 끝납니다.
SqlBulkCopy
을 사용하여 절약하는 데는 불과 몇 초 밖에 걸리지 않습니다. 그리고 DataTable
에 내 기록을로드하는 느린 - - 약 분당 7500 개 기록
dataTable.Rows.Add(myRecord.Name, myRecord.Age, ....)
이 중간 단계를 수행하는 빠른 방법이 있나요를 사용
그러나 SqlBulkCopy
는 DataTable
(나는 믿는다)가 필요합니다?
당신이 본 적이 https://stackoverflow.com/questions/13722014/insert-2-million-rows-into-sql-server-신속하게 (1 백만 행/초라고 주장하는 사람)? DataTable에 인덱스, 키, 표현식 열, 제약 조건, 다른 테이블과의 관계 등이 있습니까? 아니면 간단 할 수도 있습니다. –
내 데이터 테이블은 완전히 단순하며, 문자열, int 및 datetime 필드는 아무 것도 추가하지 않습니다. – NibblyPig
그의 예제는 새로운 행을 만들고 데이터를 추가하는 것입니다. 나는 당신이 그것을 할 필요가 없을 때 왜 그가 성찰을 사용하는지 확신하지 못한다. – NibblyPig