DB
[Oracle] 동시성 구현 사례
1223gogo
2024. 6. 10. 00:18
일련번호 채번 동시성 높이기
1) 데이터가 삽입되는 시점에 실시간으로 현재의 MAX + 1 하는 방식
2) MAX 값을 관리하는 별도의 채번 테이블에서 가져오는 방식
2번 방법의 경우 채번 후 다음 처리로 진행하기 전에 채번 테이블 값을 1만큼 증가시켜야한다.
채번 트랜잭션과 거래 트랜잭션이 분리되어있을 경우, 거래 중에 채번이 수행되고 그 이후 처리가 롤백 될 경우 채번은 커밋되어있고 거래는 롤백되는 상황이 생겨 데이터의 일관성이 깨진다.
autonomous 트랜잭션
메인 트랜잭션에 영향을 주지 않고 서브 트랜잭션만 따로 커밋하는 기능
수행 방법
pragma autonomous_transaction;
선분이력 정합성 유지
select for update 문을 사용해 레코드에 Lock 설정한다.