저는 현재 데이터베이스 연결과 트랜잭션을 모두 래핑하는 UnitOfWork 구현을 만들었습니다.UnitOfWork 대 데이터베이스 연결
using (var uow = UnitOfWorkFactory.Create())
{
// do db operations here through repositories
uow.SaveChanges();
}
UOW에이 배치되기 전에
SaveChanges
가 호출되지 않은 경우 롤백이 호출됩니다
.
uow가 연결과 트랜잭션을 모두 처리하도록하는 것은 나쁜 설계 선택입니까?
대부분의 작업이 데이터베이스에서 정보를 가져 오는 ASP.Net MVC 웹 사이트가 있다고 가정 해 보겠습니다. 데이터베이스에서 실제로 아무것도 수행하지 않는 트랜잭션을 작성/커밋하는 데 성능이 저하됩니까?
'SELECT'문에 대해서도 항상 트랜잭션을 생성하는 데 문제가 있는지 확인 했습니까? 저는 백엔드 프로그래밍에 익숙하지 않습니다. 이것은 SQL 책에서 읽은 것입니다. "트랜잭션 내에서 SELECT 문을 실행하면 참조 된 테이블에 잠금이 생겨 다른 사용자 나 세션이 작업을 수행하지 못하도록 차단할 수 있습니다 또는 데이터를 읽는 중 "_ – Axel