시나리오 :NHibernate를 이용한 병렬 삽입
통합 데이터베이스에서 프로덕션 데이터베이스로 많은 엔티티를로드해야합니다. 우리는 Hibernate를 사용하여 prod DB에 물건을로드합니다. 관련 비즈니스 규칙이 영속 엔티티를 사용하여 C#으로 이미 작성 되었기 때문입니다. 모든 것이 정상적으로 실행되고 우리는 유효한 엔티티를 DB에로드합니다. RDBMS는 SQL Server 2005 (2008 년으로 업그레이드 가능)입니다.
문제 :
기관의 수는 굉장히 빨리 성장할 것로드하고 우리가 예상했던 것보다 더 오래 걸릴 및 고객의 요구 사항을 충족하지 못할 것이라고 확신합니다.
솔루션 (?) :
단순히 병렬로 일을 실행하기 쉽다는 : 버킷으로 모든 엔티티를 분할 및 병렬로 가져옵니다.
문제는 모두 동일한 테이블에 삽입되고 모든 프로세스가 테이블 잠금에서 병목 현상을 일으키는 것입니다.
그래서 질문은 : 동일한 테이블에 삽입하려고하는 다른 트랜잭션에 대해 테이블을 잠그지 않는 방식으로 이러한 삽입을 만드는 방법이 있습니까? 스냅 샷 격리 수준에 대해 들었지만 실제 사용하는 사람을 찾지 못했습니다. 모든 지침을 부탁드립니다.
시스템이 동안 온라인 상태를 유지해야하기 때문에 시나리오가 섬세를 사용하는 자 NHibernate를 사용하지 마십시오 일괄 처리로드 – Pedro