
Deadlock in Oracle with Insert query
·
DB
이번글은 Oracle Insert 시 발생하는 데드락 문제 분석과 해결 방안에 대해 작성해보았습니다.데드락이 발생한 상황 가정상품(Product)과 사은품(Gift) 두 개의 테이블이 있다고 가정해 보겠습니다.여기서 상품 테이블의 기본 키(PK)는 사은품 테이블의 기본 키(PK)이자 외래 키(FK)로 설정되어 있으며, 상품 테이블의 PK는 시퀀스(sequence)를 통해 생성됩니다.상품 및 사은품 Insert 쿼리는 다음과 같은 흐름으로 이루어집니다.아래 흐름은 하나의 트랜잭션에서 동작합니다.상품 sequence의 LAST NUMBER로 return_id를 지정상품 insert. PK는 sequence의 NEXT_VAL로 지정한다.1)에서 return_id를 가져와 사은품의 PK로 지정하여 insert...