안녕하세요.
교착상태 관련 문의드립니다.
최근 DB에서 교착 상태 관련 로그가 발생하고 있어서 분석하고 있는데,
교착상태가 발생하면 어느정도는 기다려주는게 기본 설정 아닌가요?
LOCKTIMEOUT 옵션을 보면 -1 로 세팅되어 있는데도 불구하고..
쿼리 실행 직후 교착 상태 에러를 뱉습니다.
" 트랜잭션(프로세스 ID 88)이 잠금 | 통신 버퍼 리소스에서 다른 프로세스와의 교착 상태가 발생하여 실행이 중지되었습니다. 트랜잭션을 다시 실행하십시오. "
해당 시간에 로그등을 확인한 결과 동시 다발적으로 하나의 테이블에 접근을 하는것은 맞습니다.
그러나 동시접속하는 경우라도 모두 PK는 다르며, PK로 단순 SELECT 하고 상태값을 UPDATE 하는 심플한 로직입니다.
정상 처리인 경우 1초도 걸리지 않는 단순한 SELECT & UPDATE 이구요.
같은 PK로 동시 사용도 하지 않고.. 시간도 아주 짧은데.. 저런 현상이 발생할 수 있는건지요?
뭔가 DB옵션이 잘못된 걸까요?
며칠째 이러고 있어서 답답한 마음에 글 올립니다.
미리 감사드립니다.
Comment 2
-
trace flag 1204 1224 추가해 주시고 error log에 기럭되는 교착상태 로그 올려 보세요.
-
이리
2021.02.16 08:33
교착 상태 관련하여 아래 내용을 참고하시면 좋을듯 싶습니다.