데이터베이스에서 트랜잭션을 사용하여 읽는 것과는 매우 다른 의견이있는 것 같습니다. developerWorks 기사 Transaction strategies: Models and strategies overview에서읽기 전용 DB 액세스를위한 트랜잭션?
인용구 :
왜 당신은 단지 데이터를 읽는 경우 트랜잭션을 필요? 대답은 입니다. 읽기 전용 작업을 수행하기 위해 거래를 시작하면 처리 스레드의 오버 헤드에 추가하고 (당신이 을 사용하고있는 데이터베이스의 종류와 어떤 격리 수준 설정에 따라 데이터베이스에 읽기 잠금을 공유 될 수 있습니다 to). 반대의 의견으로
최대 절전 모드의 문서에서 다음 인용문이 Non-transactional data access and the auto-commit mode
우리의 권고는 응용 프로그램에서 자동 커밋 모드를 사용하지 않는 것입니다및 적용하는 읽기 전용으로 만 때 트랜잭션을 명백한 성능 또는 나중에 코드를 변경할 때 가능성은 매우 낮습니다. 항상 일반 ACID 트랜잭션을 사용하여 데이터를 읽거나 데이터를 쓰는 지 여부와 상관없이 데이터 액세스 작업, 을 그룹화하는 것이 좋습니다.
EclipseLink 메일 링리스트 here에 대해서도 비슷한 논쟁이 있습니다.
그래서 진실은 어디에 있습니까? 베스트 프랙티스를 읽는 거래는 있습니까? 둘 다 실행 가능한 솔루션이라면 트랜잭션을 사용하기위한 기준은 무엇입니까?
필자가 볼 수있는 한, 격리 수준이 '읽기 전용'보다 높으면 차이가 있습니다. 이 올바른지?
경험 및 권장 사항은 무엇입니까?