>백엔드 개발 >C++ >트랜잭션 스코프 내에서 엔티티 프레임 워크를 사용하여 4000 개의 레코드를 데이터베이스에 삽입하는 가장 빠른 방법은 무엇입니까?

트랜잭션 스코프 내에서 엔티티 프레임 워크를 사용하여 4000 개의 레코드를 데이터베이스에 삽입하는 가장 빠른 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-02-02 06:11:14199검색

Entity Framework 효율적으로 데이터 메소드 를 효율적으로 삽입하십시오 >> 질문 : What's the Fastest Way to Insert 4000  Records into a Database Using Entity Framework within a TransactionScope?
트랜잭션 처리에 TransactionScope를 사용할 때 4,000 개 이상의 레코드를 데이터베이스에 빠르게 삽입하는 방법은 무엇입니까?

답변 :

많은 양의 데이터 삽입 (4000 레코드)의 경우

메소드 효율은 매우 낮습니다. 다음 최적화 기술은 삽입 속도를 크게 향상시킬 수 있습니다.

모든 레코드가 컨텍스트에 추가 된 후 일회용 호출 . 배치

:

지정된 수량 (예 : 100 개 항목)을 처리 한 후 를 한 번 호출하십시오.

재구성 컨텍스트 :

배치 방법과 유사하지만 컨텍스트를 해제하고 이후에 추가 엔티티를 해제하기위한 새로운 컨텍스트를 만듭니다. 테스트 변경 비활성화 : 일시적으로 비활성화 된 자동 변경 사항 테스트를 비활성화하고 로 설정하십시오.

구현 예 : SaveChanges() 다음 코드 조각은 위의 최적화 기술을 결합합니다.

이 모드는 를 호출하기 전에 여러 레코드를 처리하여 배치 삽입을 달성합니다. 또한 컨텍스트의 릴리스 및 재생은 추가 엔티티를 제거하여 메모리 사용을 줄이고 성능을 향상시키는 데 도움이됩니다.
    성능 비교 :
  • 이 최적화 모드를 사용하여 데이터베이스의 성능 테스트 결과에 560,000 개 엔티티를 삽입하십시오. , SaveChanges() : 202 초 , : 164 초 SaveChanges() 대조적으로, 각 레코드에 대해
  • 호출하면 동일한 작업을 완료하는 데 몇 시간이 걸립니다.

위 내용은 트랜잭션 스코프 내에서 엔티티 프레임 워크를 사용하여 4000 개의 레코드를 데이터베이스에 삽입하는 가장 빠른 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.