다음을 수행해야하는 상황이 있습니다.
작업 A는 데이터베이스 작업이 아니며 실행하는 데 시간이 걸릴 수 있으며 되돌릴 수 없습니다. 작업 B는 데이터베이스 작업이 아니지만 실행 속도가 매우 빠릅니다. 시퀀스는 여러 서버에 걸쳐 여러 스레드에서 수행됩니다.
현재 우리는 잠금이 없기 때문에 때때로 A 조치가 여러 번 실행되는 것을 볼 수 있습니다. 여기서 내 유일한 해결책은 위의 시퀀스를 획득 잠금 단계와 잠금 해제 단계 로 어떻게 든 래핑 하는 것이라고 생각합니다. 어떻게해야할지 모르겠습니다.
비슷한 질문 을 보았습니다 . 대답은 '잠금'및 '수집 시간'열을 행에 추가하는 것입니다. 그러나 그 상황에서 OP는 자주 잠금을 다시 획득하는 것에 대해 걱정하지 않았습니다. 시퀀스를 실행하고 싶을 때마다 이전 잠금이 만료 될 때까지 회전 대기해야한다면 내 서버의 성능이 창 밖으로 나올 것입니다.
여기에서 사용할 수있는 SQL에 내장 된 것이 있습니까?
"X"값을 "보류 중"으로 업데이트하십시오.
조치 A가 완료되면 "보류 중"을 무엇이든 업데이트하십시오.
잠금이 필요하지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다