현재 EntityFramework.BulkInsert
으로 재생 중입니다.C# 및 EF : bulkinsert 관련 개체
단순 삽입 (16,000 초 1.000.000 행)의 성능에 실제로 도움이되지만 여러 테이블에 매핑 된 개체 삽입에 대한 정보는 찾을 수 없습니다. 그와 관련된 유일한 것은 그것이 가능하지 않다는 공식 웹 사이트의 오래된 (2014) 주제입니다. 아직도 실제입니까?
만약 그렇다면, 좋은 해결책이 있습니까?
현재 EntityFramework.BulkInsert
으로 재생 중입니다.C# 및 EF : bulkinsert 관련 개체
단순 삽입 (16,000 초 1.000.000 행)의 성능에 실제로 도움이되지만 여러 테이블에 매핑 된 개체 삽입에 대한 정보는 찾을 수 없습니다. 그와 관련된 유일한 것은 그것이 가능하지 않다는 공식 웹 사이트의 오래된 (2014) 주제입니다. 아직도 실제입니까?
만약 그렇다면, 좋은 해결책이 있습니까?
EntityFramework.BulkInsert는 간단한 시나리오를 지원하는 매우 훌륭한 라이브러리입니다. 그러나 라이브러리는 제한적이며 더 이상 지원되지 않습니다.
지금까지 단 하나의 좋은 해결책이 있으며 모든 것을 지원하는 라이브러리를 사용하고 있습니다!
면책 조항 : 나는이 프로젝트 Entity Framework Extensions
이 도서관은 모든 협회와 상속을 포함한 모든 지원의 소유자입니다.
예를 들어 여러 테이블을 여러 테이블에 저장하는 경우 BulkSaveChanges은 SaveChanges와 똑같이 작동하지만 속도는 더 빠릅니다.
// Easy to use
context.BulkSaveChanges();
// Easy to customize
context.BulkSaveChanges(bulk => bulk.BatchSize = 100);
라이브러리는 삽입하는 것 이상의 역할을합니다. 그것은 모든 대량 작업을 지원합니다
그러나 EntityFramework.BulkInsert는 달리,이 라이브러리는 무료로하지 않습니다.
편집 : 응답 subquestion
당신은 빠른 방법은 말 - 당신이 어떤 통계 또는 통계
@ 마크에 대한 링크를해야합니까 : 당신은 우리의 웹 사이트 homepage에 메트릭을 볼 수 있습니다. BulkSaveChanges가 SaveChanges보다 최소 15 배 빠름을보고합니다.
그러나 통계에는 많은 편향이 있습니다. 너무 많은 것들이 지수, 방아쇠, 대기 시간 등과 같은 영향을 미칠 수 있습니다!
사람들은 일반적으로 성능이 25 배, 50 배, 80 배 향상되었습니다.
사람들이 일반적으로 벤치마킹을 수행 할 때 잊어 버리는 것은 JIT 컴파일 테스트 전에 한 번 라이브러리를 호출하는 것입니다! Entity Framework와 마찬가지로 라이브러리의 첫 번째 히트에는 몇 밀리 초가 걸릴 수 있습니다.
당신은 * 빠른 방법이라고 말합니다 * - 메트릭이나 메트릭에 대한 링크가 있습니까? 그냥 호기심 –
대량 삽입 문제가있는 경우 EF를 사용하지 않습니다. EF는 응용 프로그램의 일반적인 사용 상황에서 엔티티를 나타내는 객체를 매핑하기위한 것으로, 주어진 트랜잭션이 실제로 하나의 엔티티 만 처리해야합니다 (엔티티가 현저한 일관성 경계 주위에 설계되었다고 가정).
(가져 오기/내보내기/변환 등) 많은 데이터를 이동하는 경우 SQL을보다 직접적으로 사용하여 제어 할 수 있습니다.
불행히도 .... 예. alternatve는 대량 삽입 확장이고 동일한 트랜잭션 내에서 모든 것을 수동으로 업데이트합니다. – ESG