SqlBulkCopy의 단점은 무엇입니까?

sqlbulkcopy

문제

나는 "C #으로 거대한 데이터를 DB에 삽입하는 인피니티"에 대한 연구를 한 적이 있습니다. 그런 다음 많은 사람들이 SqlBulkCopy를 사용하여 제안했습니다. 나는 그것을 시험해보고 정말로 놀랐다. 의심 할 여지없이 SqlBulkCopy는 매우 빠릅니다. SqlBulkCopy는 데이터 (특히 거대한 데이터)를 삽입하는 완벽한 방법 인 것 같습니다. 그러나 우리는 항상 그것을 사용하지 마십시오. SqlBulkCopy 사용의 단점이 있습니까?

수락 된 답변

내가 생각할 수있는 두 가지 이유 :

  1. 내가 아는 한, Microsoft SQL Server에서만 사용할 수 있습니다.
  2. 많은 정상적인 작업 부하에서는 대량 insert 하지 않지만 가끔 insertselectupdate 와 섞여 있습니다. Microsoft는 SqlBulkCopy MSDN 페이지 에서 일반 insert 이 더 효율적이라고 말합니다.

SqlBulkCopy 를 일반 삽입물과 동일하게 만들려면 최소한 SqlBulkCopyOptions.CheckConstraints 매개 변수를 전달해야합니다.


인기 답변

SqlBulkCopy는 Oracle v11에서도 존재하지만 Oracle Client를 설치할 때 얻을 수있는 Oracle .NET 어셈블리가 제공합니다. SqlBulkCopy 클래스는 기본적으로 대상 데이터베이스 엔진의 공급자에 의해 하나씩 구현됩니다.

하나의 큰 단점,하지만 - 절대 오류보고가 없습니다. 예를 들어, DataSet의 데이터를 업데이트하고 어댑터를 사용하여 DB로 다시 플러시하고 키 위반 (또는 다른 오류)이 발생하면 범인 DataRows는 .HasErrors를 true로 설정하고 그것을 제기 할 때 예외 메시지에 추가하십시오.

SqlBulkCopy를 사용하면 오류 유형을 얻게됩니다. 행운을 빌어 요.



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