maira db의 프로시저에서
'ErrNO:1213 SQLState:40001 ErrMsg : Deadlock found when trying to get lock; try restarting transaction
이라는 에러가 간혹 발생합니다.
구글링을 해본결과
TRANSACTION ISOLATION LEVEL REPEATABLE READ 일경우에 발생한다고 하는데
이 프로시저 에서는 insert update 하는 구문도 없고 select만 하는 프로시저 이며
프로시저 변수와 임시 테이블 다음에
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ; 라고 선언도 해 두었습니다.
트랜잭션 레벨을 바꾸면 커넥션이 끊길떄 까지 유지된다고 하여
프로시저 종료 전에는 다시 SET SESSION TRANSCATION ISOLATION LEVEL REPEATABLE READ 라고 다시 설정해 두었습니다.
ISOLATION 레벨을 설정후 따로 START TRANSACTION 구문은 사용하지 않았는데..
SELECT 구문만 들어 있는 프로시저라 원인이 무엇인지 파악이 어렵습니다.
고수님들 답변 기다리겠습니다.
읽어주셔서 감사합니다. |