테이블에 많은 레코드 (약 2 ~ 3 백만)를 삽입해야한다는 요구 사항이 있습니다. 그러나 우리는 유효하지 않은 레코드 (기본 키, 외래 키 및 비 null 위반)를 나중에 참조 할 수 있도록 별도의 오류 테이블에 유효성을 검사하고 분리 할 수 있어야합니다. 필자의 연구에 따르면 SQL 서버의 대량 삽입은 삽입에 적합하지만 잘못된 데이터 레코드를 필터링하는 가장 좋은 방법을 찾아 내지 못합니다. 도움 사이에 스테이징 테이블을 가지고 있습니까? 스테이징 테이블에 대해 대기열을 사용하여 위반 사항을 확인할 수는 있지만 실제 레코드에 다른 레코드를 삽입해야합니다 (삽입 선택 또는 병합을 통해). 그러나 이것이 효율적인 접근 방법입니까? 나는 2x 인서트를하는 것과 비슷하기 때문에 걱정이된다.데이터 유효성 확인이 포함 된 대량 삽입
.net sqlbulkcopy를 사용하여 대량 삽입을 수행 할 계획이며 명확한보고 오류도 없습니다.
누군가 좀 효율적으로 해결책을 제시 할 수 있습니까?
편집 :이 방법이 유일한 해결책 인 경우 두 번째 삽입물에 가장 적합한 방법은 무엇이라고 생각하십니까? 삽입 ... 선택 또는 병합입니까? BULK INSERT의 효율성과 속도와 일치합니까? 아니면 다른 대안이 있습니까?
감사합니다!
여기에는 몇 가지 접근 방법이 있습니다. http : //stackoverflow.com/questions/1004525/sqlbulkcopy-error-handling-continue-on-error – TheGameiswar
@TheGameiswar 링크를 제공해 주셔서 감사합니다. 나는 그것을 통과했고 실제로 두 번째 옵션은이 시나리오에서 적용 가능하다고 생각하는 것입니다. 그러나 소스에서 스테이징 테이블로, 그리고 스테이징 테이블에서 대상으로 각각 한 번씩 대량 삽입 할 때 효율적이라고 확신 할 수 없습니다. 최적화를위한 추가 기회가 있는지 알고 싶었습니다. –
@TheGameiswar는 두 번째 단계를 수행하는 가장 좋은 방법에 대한 의견 수집에 관한 질문을 편집했습니다. 감사! –