2013-03-02 2 views
1

여러 테이블이 관련되어있는 데이터베이스간에 많은 양의 데이터를 가져올 필요가 있습니다.데이터 가져 오기 전략에서 nhibernate 트랜잭션 범위

거래에 가장 적합한 전략은 무엇입니까? 나는 하나의 커다란 거래를하고 그 과정의 마지막에 커밋하는 것은 나쁜 생각 일 것이라고 생각합니다.

각 테이블을 커밋하는 것이 좋을까요? 특정 테이블이 다른 테이블과 종속되어 있다면 어떻게 처리해야합니까?

+0

당신이 데이터를 가져 오기 위해 NHibernate를 사용할 계획이라면, 적어도 이것을 위해 "StatelessSession"을 사용하십시오. –

+0

StatelessSession에 익숙하지 않아 데이터를 빠르게 삽입하는 방법을 제공한다고 생각하십니까? – user1838662

+1

무국적 세션은 1 단계 캐시를 사용하지 않고 2 단계 캐시 또는 쿼리 캐시를 사용하지 않습니다 - http://nhforge.org/doc/nh/en/index.html#batch-statelesssession 대량 작업의 경우 세션 성능이 향상됩니다 (그러나 무 상태 세션 사용에 대한주의 사항을 살펴보십시오) –

답변

0

가능한 경우 별도의 트랜잭션에 종속없이 테이블을 가져 와서 다른 트랜잭션의 종속성이있는 테이블을 가져올 수 있습니다.

이것이 가능하지 않은 경우 큰 거래 하나를 추천합니다.

+0

트랜잭션 기본 데이터베이스로 되돌아 가면 트랜잭션을 만들 때 데이터베이스에 추가하려는 모든 데이터가 메모리에 저장되고 커밋이 완료되면 데이터베이스에만 추가됩니다 그 시나리오에서, 하나의 거대한 거래는 잠재적으로 많은 양의 메모리를 소비하지 않을 것인가? – user1838662

+1

데이터가 일관성이 있어야하는 경우 많은 양의 데이터가있는 경우에는 데이터가 여전히 일관성이 있음을 확인하는 것 외에는 그다지 많지 않습니다. – Xharze

+0

감사합니다. – user1838662

관련 문제