22000 행의 CSV 파일이 있습니다. 처음 엔 csv 파일에서 모든 행을 읽고 엔티티 프레임 워크 db.SaveChanges()
을 사용하여 데이터베이스에 추가합니다. 저장 변경은 45 초가 걸립니다. 다음에 모든 레코드를 읽고 새 레코드를 추가하고 기존 레코드를 업데이트하면 2 분이 걸립니다. 대량 레코드를 삽입하는 가장 좋은 방법은 무엇입니까?업데이트가 오래 걸리는 이유
0
A
답변
0
EF로 저장할 때 세 가지 다른 동작이 발생하며 속도가 매우 다릅니다. 삽입 및 삭제는 SQL Server에 대한 단일 호출에서 수행되지만 업데이트는 동시성 문제를 확인하고 어떤 엔티티가 실패했는지 다시보고 할 수 있도록 한 번에 하나의 레코드에서 수행됩니다.
EF를 계속 사용하려면 서버에서 항상 INSERT 및 MERGE (SQL 명령)를 수행해야합니다. 저장 프로 시저를 생성 할 능력이 없다면 C#의 sql 명령에서 MERGE를 수행 할 수도 있습니다.
가장 좋은 옵션은 가능한 경우 BULK INSERT를 사용하는 것입니다.
관련 문제
- 1. apk 업데이트가 오래 걸리는 이유는 무엇입니까?
- 2. 내 SQL 문이 너무 오래 걸리는 이유
- 3. else 문이 매우 오래 걸리는 이유
- 4. 변경 테이블 문에 phpmyadmin이 너무 오래 걸리는 이유
- 5. 익명 형식에서 serializing (JavaScriptSerializer)이 두 배 오래 걸리는 이유
- 6. "partial_fit"메서드가 "fit"메서드보다 훨씬 오래 걸리는 이유
- 7. 많은 양의 SKNode를 만드는 데 너무 오래 걸리는 이유
- 8. Intream.range (0, 100000) .parallel.foreach가 루프보다 오래 걸리는 이유
- 9. Visual Studio가 파일을 삭제하는 데 너무 오래 걸리는 이유
- 10. MySQL COUNT + GROUP-BY가 GROUP-BY보다 더 오래 걸리는 이유
- 11. 비정상적으로 오래 걸리는 MySQL 문
- 12. 커서가 너무 오래 걸리는 쿼리
- 13. mysql에서 너무 오래 걸리는 삭제
- 14. Robolectric이 오래 걸리는 이유는 무엇입니까?
- 15. 로드 시간이 오래 걸리는 자식
- 16. 부모 프로세스보다 오래 걸리는 프로세스를 만드는 방법
- 17. 검도 UI 표 - 오래 걸리는 행 제거
- 18. 실행 시간이 오래 걸리는 SQL 쿼리 최적화
- 19. 업데이트가 작동하지 않는 이유
- 20. 타이탄 색인 업데이트가 너무 오래 걸림
- 21. PHPExcel - setTitle에 시간이 많이 걸리는 이유
- 22. 그래프가 로그보다 너무 오래 걸리는 이유는 무엇입니까?
- 23. PayPal에서 29 일보다 오래 걸리는 돈
- 24. 동기화보다 오래 걸리는 비동기 EF 6.0
- 25. PHP - 너무 오래 걸리는 코드를 멈추고 잡으십시오.
- 26. 너무 오래 걸리는 경우 file_get_contents를 자르십시오.
- 27. 로드 시간이 너무 오래 걸리는 테두리 추가
- 28. 너무 오래 걸리는 연관 배열 반복 처리
- 29. 너무 오래 걸리는 Android 앱의 Eclipse 디버깅
- 30. PHP가 너무 오래 걸리는 XML로드 중
새 레코드 만 추가하고 기존 레코드를 업데이트 할 때는 단순히 22,000 개의 레코드를 삽입하는 것보다 훨씬 많은 작업을 수행해야합니다. –
csv 파일에 새 행을 추가하거나 새 csv에서 새 행을 선택합니까? –
SQL Server의 준비 테이블에 모든 행을 대량 삽입 한 다음 거기에 업데이트, 삽입, 삭제 작업을 수행하십시오. 삽입/대량 삽입 실제 테이블에 직접 데이터를 삽입하지 마십시오. CSV 파일에는 모든 종류의 가비지 데이터가있을 수 있습니다. –