2009-05-13 5 views
5

더 효율적입니다 - .net 코드에서 IDbTransaction을 갖거나 데이터베이스에서 처리하는 것이 더 효율적입니까? 왜?코드 대 DB의 트랜잭션 효율성

둘 중 어느 시나리오를 사용해야합니까?

+0

(댓글에 응답) –

답변

3

연결 기반 트랜잭션 (IDbTransaction)의 경우 전반적인 성능은 비슷해야하지만 .NET 코드에서 처리하면 동일한 연결에서 여러 데이터베이스 작업을 편리하게 수행 할 수 있습니다. TSQL 내부에서 트랜잭션 관리를 수행하는 경우 실제로는 단일 TSQL 쿼리로 제한해야합니다. 시작/종료에 대한 여분의 왕복 여행이 있을지 모르지만 그것은 당신을 해칠 가능성이 없습니다.

내가 수동으로 TSQL 기반 트랜잭션을 작성하는 것은 꽤 드뭅니다. 어쩌면 내가 직접 응용 프로그램 코드가 아닌 에이전트를 통해 서버에서 호출 한 것을 작성하는 경우입니다. 이상 Transactions in .net를 참조 IDbTransaction 사이 TransactionScope

더 큰 차이가 있지만, 짧은 버전 TransactionScope가 (시나리오)에 따라 약간 느리지 만, 다중 연결/데이터베이스 (또는 다른 자원)에 걸쳐있을 수 있다는 것입니다.

+0

감사합니다 Marc ... 아직도 SQL 저장 프로 시저에서 트랜잭션을 사용할 수있는 IDbTransaction을 사용하고 싶습니다. –

+0

IDbTransaction이 여러 개의 원자 연산 (즉, 아마도 이미 존재할 것이다). 트랜잭션이 sproc 내부에 있으면 그렇게 할 수 없지만 연결 기반 일 경우에는 할 수 있습니다. 또한 관심사를 분리하는 것보다 낫습니다. 트랜잭션에 대한 책임을 sproc에서 멀리 옮기는 것입니다. sproc은 일부 데이터 (업데이트 등)를 업데이트하는 것입니다. –