가능한 한 효율적으로 데이터베이스에 삽입하려는 대량의 지속적으로 들어오는 데이터 (분당 10,000 개 이상 증가)가 있습니다. 지금은 준비된 insert 문을 사용하고 있지만 SqlBulkCopy 클래스를 사용하여 더 큰 청크로 데이터를 가져올 생각입니다.빠른 삽입; 관계형 데이터를 사용한 대량 복사
문제는 단일 테이블에 삽입하지 않는다는 것입니다. 데이터 항목의 요소는 수많은 테이블에 삽입되며 ID 열은 동시에 삽입되는 다른 행의 외래 키로 사용됩니다. 나는 대량 복사가 이와 같은 복잡한 삽입을 허용하지 않는다는 것을 이해하지만 uniqueidentifier 열에 대해 내 ID 열 (이 경우에는 bigints)을 교환 할 가치가 있는지 궁금합니다. 이렇게하면 각 테이블에 대해 대량 복사를 할 수 있으며 삽입 전에 ID를 확인할 수 있으므로 SCOPE_IDENTITY와 같은 항목을 확인할 필요가 없으므로 대량 복사를 사용할 수 없습니다.
실용적인 솔루션처럼 들리거나 내가 직면 할 수있는 다른 잠재적 인 문제가 있습니까? 또는 데이터를 빠르게 삽입 할 수있는 또 다른 방법이 있지만 bigint ID 열의 사용을 유지하고 있습니까?
감사합니다.
"일관되고 틀림없이 작동하는 프로세스 만들기는 어렵습니다." 사실,하지만 데이터베이스 외부의 단일 비공유 응용 프로그램에서이 작업을 수행하는 경우 훨씬 쉽습니다. 경합 없음, 경합 조건 없음, 트랜잭션 없음. –
GUID를 시도한 결과 성능이 10 배 향상되었습니다 (초당 10,000 개 삽입). :) – Barguast