2009-12-08 4 views
2

서로 다른 테이블에 다른 명령 집합을 병렬 및 트랜잭션 방식으로 실행하려면 어떻게해야합니까?C#에서 MultiThreaded Transaction을 어떻게 구현할 수 있습니까?

자세한 내용은 :

나는 모든 명령 스레드 이상하지만 단일 트랜잭션에서 배포 할, 그래서 모든 스레드가 성공하면 내가 다른 롤백을 커밋 수 있습니다합니다.

+0

트랜잭션을 커밋, 문제 명령을, 연결을 열 트랜잭션을 시작? 분산 트랜잭션을 사용하는 것보다 일괄 처리 작업에서 더 많은 이점을 얻을 수 있습니다. 그것들이 단지 삽입물이라면, 대량 삽입물을 사용하는 것이 좋습니다. –

+0

나는 다른 테이블을 가지고 있는데, 각 테이블에 대한 대량 삽입 (SqlBulkCopy 클래스)을 사용하여 삽입을 이미 실행하고 있지만 현재는 직렬로 실행되므로 병렬로 실행하고 트랜잭션 동작을 유지하려고합니다. –

답변

1

일반적인 데이터베이스 연결은 다중 스레드 사용을 처리 할 수 ​​없으므로 시도하지 마십시오.

대신 DTC을 보면 여러 데이터베이스 연결이 단일 트랜잭션에서 협업 할 수 있습니다. 약간의 오버 헤드가 발생하므로 원하는 멀티 스레드 이점을 실제로 얻었는지 확인해야합니다.

+0

이것은 .Net에서 아무런 방법이 없다는 것을 의미합니다. ?? –

+1

나는 그런 말을하지 않았다. 내 말은 당신이 데이터베이스 연결 객체와 다중 쓰레드 코드 이상의 것을 필요로한다는 것이다. –

+0

Ahmed, 이것은 MSQL 서버가 .NET보다 지원하는 것에 대한 것입니다. ODBC 드라이버를 사용하는 모든 언어에서 동일합니다. – weismat

0

내가 병렬 및 트랜잭션 방식으로 다른 테이블에 다른 명령 세트 실행하려면, 나는 그것을 어떻게 할 수 ?

스레드 1에서 : 연결을 열고, 트랜잭션을 시작하고, 명령을 실행하고, 트랜잭션을 커밋합니다. 스레드 # 2에서

: 사람들을 명령의 어떤 종류

+1

모든 명령이 스레드를 통해 배포되지만 단일 트랜잭션에서 모두 또는 아무것도 필요하지 않음 –

관련 문제