[Oracle] SELECT FOR UPDATE
동일한 데이터 레코드에 대해 서로 다른 두 세션이 동시에 접근해 중복처리가 이루어지는 문제가 발생했다. 이 레코드에는 처리상태(미처리, 처리완료)를 나타내는 컬럼이 존재한다. 그러나 첫 세션에서 해당 컬럼이 수정되고 commit이 일어나기 전에 또 다른 세션에서 이 레코드에 대한 처리가 시도되었다. 두 번째 세션에서도 이 레코드를 미처리 상태의 데이터로 인지하여 결국 한 번만 실행되었어야 하는 프로세스가 중복 수행되었다. Oracle에서는 이러한 문제를 보완할 수 있는 한 가지 방안을 제시한다. 데이터의 수정이 일어나게 될 대상 레코드에 Lock을 설정해 이 레코드의 수정작업이 완료되기 전 까지는 타 세션의 접근(엄밀히 말하면 SELECT)을 제한하는 것이다. SELECT * FROM TBL WHERE ..
프로그래밍/DataBase
2019. 4. 25. 00:44
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday