오라클 db lock 관련질문입니다. 0 1 564

by 노박사 [2020.01.21 20:09:20]


안녕하세요 선배님들

 

회사에서 문제가 생겼었는데 궁금해서 질문드립니다.

 

A라는 테이블에 데이터가 1억개 이상이 들어있습니다.

 

근데 select * from A; 

와 같이 조건 없이 전체 조회에는 크게 문제가 없습니다.

 

하지만 update A set 컬럼 = 'x';

 

위와 같이 조건 없이 전체 업데이트를 돌렸는데 db lock이 걸렸는데,

 

왜 업데이트에만 db lock 걸릴 수가 있나요?

by pajama [2020.01.21 23:18:42]

update, delete, insert, select for update 같은 문장이 트랜잭션내에 있으면, 트랜잭션이 commit이나 rollback 될때까지 lock(exclusive lock)을 유지합니다. 이런 상태에서 select는 가능하지만, 오래 지속되는 경우 다른 트랜잭션의 데이터 변경작업은 실패하면서 문제가 되는 경우가 종종 있습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입