내 질문은 this question과 동일하지만 추가 할 내용은 조금 있습니다. 내 문제는 내 웹 응용 프로그램의 사용자가 레코드의 새 버전을 만들 수 있다는 것입니다. 새로운 버전의 레코드는 50 개의 다른 관련 테이블에 해당하는 "새 버전"을 만들어 해당 버전에 대한 개별 변경 사항을 기록합니다. 약 50 개의 테이블이 포함 된 새 버전 생성은 트랜잭션 내에서 실행됩니다 (오류 발생시 모든 변경 사항을 롤백). 이 절차는 너무 많은 테이블 "삽입"이 수반되는 "긴 트랜잭션"때문에 느리게 진행됩니다.ASP.NET OLTP App - 새 버전의 레코드 만들기
저는 이러한 시나리오를 구현하기위한 더 나은 솔루션/디자인을 찾고 있습니다.
- 는 자체가 너무 많은 기록이 점점 좋은에서 내가 디자인을 생각하지 않습니다
- 여러 테이블에 너무 많은 중복을 생성 특히, 동일한 레코드의 "버전"을 유지하기 위해 더 좋은 방법이 있나요 "모든 행 버전"에 삽입되었지만 지연 문제를 야기하는 "긴 트랜잭션"즉각적인 문제를 해결하는 것이 좋습니다. 나가는 길은 없을 수도 있지만 여전히 묻고 싶습니다. - 트랜잭션 내에 "버전 관리"기능을 넣지 않으면 오류가 발생할 때 롤백하는 더 좋은 방법이 있습니다 (트랜잭션은 다른 OLTP 쿼리 - 모든 기본 테이블에 새 버전을 삽입 함으로 인해)
지금 버전 쿼리는 약 10 초 동안 실행되지만 시간이 갈수록 악화됩니다. 어떤 생각을 부탁드립니다
폴 감사합니다. 하지만 내 문제는 단지 - 일반적인 사용 사례 동작은 사용자가 레코드의 "새 버전"을 만들 수있게되면 즉시 특정 버전과 관련된 정보를 업데이트합니다. 따라서 사용자가 정보를 업데이트 할 수 있도록 관련된 모든 테이블에 새 버전이 있어야합니다. 그것은 실시간으로 발생해야합니다. – Lalman