들어오는 파일을받을 때마다 하나의 테이블을 채우도록 저장 프로 시저를 호출했습니다. 가끔씩 우리는 하나 이상의 파일을 받고 프로 시저가 동시에 호출됩니다. 아래로 프로 시저 내부 이 문장은 매우 간단하다 :교착 상태를 해결하십시오
IF NOT EXISTS (SELECT.... WHERE A=1 B=2)
INSERT ...
ELSE
UPDATE ...
WHERE A=1 and B=2
END
는 이렇게, 나는 중복 기록 오류를 받기 시작했다. 2 개의 동일한 레코드가 INSERT
에 시도되었다고 가정합니다. 이를 피하기 위해 나는이 진술을 SERIALIZABLE ISOLATION LEVEL
으로 거래 내역에 넣었습니다.
상황이 더욱 악화되어 교착 상태 오류가 발생하기 시작했습니다.
내가 잘못하고있는 것이 있습니까?
기본 수준 인 Read Committed를 시도했습니다. 하지만 여전히 중복 된 레코드 오류가 발생합니다. – wixuser1105
커밋되지 않은 읽기 권한을 부여합니다. 앤드류의 대답을 변경하는 것은 확실히 문제를 해결할 것입니다. –