oracle 9 DB에서 아래의 SQL 명령을 실행할 때 "enq : TX - 행 잠금 경합"이 계속 실행됩니다. 테이블 mytable은 300 행 미만의 작은 테이블입니다.오라클 행 잠금 대기열 시간이 긴
UPDATE MYTABLE
SET col1 = col1 + :B3 ,
col2 = SYSDATE
WHERE :B2 = col3
AND :B1 = col4
동시에 10 개의 스레드를 실행하고 일부는 10 초 동안 업데이트하여 업데이트 할 수 있습니다. 나는이 교착 상태 문제에 직면하게 될 것이라는 것을 안다.하지만 나를위한 문제는 테이블이 작기 때문에 훨씬 빨라야한다는 것이다. 그래서 테이블을 업데이트하는 것이 빠를 것이다.
편집 :이 코드는 변경할 수 없으며 타사 응용 프로그램 내에 있습니다. 나는 단지 DB를 조정할 수 있습니다.
행 잠금 대기열의 속도를 향상 시키려면 어떻게해야합니까? 내 스레드가 더 빨리 실행될 수 있도록 대기 시간을 어떻게 향상시킬 수 있습니까?
업데이트가 일반적으로 몇 행에 영향을 줍니까? –
각 업데이트는 하나의 행에만 영향을줍니다. 하지만 여러 번 같은 열을 업데이트하려고하는 10 개의 스레드가 있습니다. – kurast