DB

[Oracle] 동시성 구현 사례

1223gogo 2024. 6. 10. 00:18

일련번호 채번 동시성 높이기

1) 데이터가 삽입되는 시점에 실시간으로 현재의 MAX + 1 하는 방식

2) MAX 값을 관리하는 별도의 채번 테이블에서 가져오는 방식

 

2번 방법의 경우 채번 후 다음 처리로 진행하기 전에 채번 테이블 값을 1만큼 증가시켜야한다.

채번 트랜잭션과 거래 트랜잭션이 분리되어있을 경우, 거래 중에 채번이 수행되고 그 이후 처리가 롤백 될 경우 채번은 커밋되어있고 거래는 롤백되는 상황이 생겨 데이터의 일관성이 깨진다.

autonomous 트랜잭션

메인 트랜잭션에 영향을 주지 않고 서브 트랜잭션만 따로 커밋하는 기능

수행 방법

pragma autonomous_transaction;

선분이력 정합성 유지

select for update 문을 사용해 레코드에 Lock 설정한다.