본문 바로가기 메뉴 바로가기

LIMDINGDONG STUDIO

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

LIMDINGDONG STUDIO

검색하기 폼
  • 분류 전체보기 (31)
    • 프로그래밍 (31)
      • DataBase (1)
      • 클린코드 & 리팩토링 (10)
      • 회고 (0)
      • Effective Java (15)
      • 금융IT (5)
    • 생각정리 (0)
  • 방명록

프로그래밍/DataBase (1)
[Oracle] SELECT FOR UPDATE

동일한 데이터 레코드에 대해 서로 다른 두 세션이 동시에 접근해 중복처리가 이루어지는 문제가 발생했다. 이 레코드에는 처리상태(미처리, 처리완료)를 나타내는 컬럼이 존재한다. 그러나 첫 세션에서 해당 컬럼이 수정되고 commit이 일어나기 전에 또 다른 세션에서 이 레코드에 대한 처리가 시도되었다. 두 번째 세션에서도 이 레코드를 미처리 상태의 데이터로 인지하여 결국 한 번만 실행되었어야 하는 프로세스가 중복 수행되었다. Oracle에서는 이러한 문제를 보완할 수 있는 한 가지 방안을 제시한다. 데이터의 수정이 일어나게 될 대상 레코드에 Lock을 설정해 이 레코드의 수정작업이 완료되기 전 까지는 타 세션의 접근(엄밀히 말하면 SELECT)을 제한하는 것이다. SELECT * FROM TBL WHERE ..

프로그래밍/DataBase 2019. 4. 25. 00:44
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

Blog is powered by Tistory / Designed by Tistory

티스토리툴바