오라클에서 이상한 시나리오가 나타났습니다. 한 클라이언트가 "업데이트 선택"권한 옵션 (트랜잭션 완료까지 행이 잠길 것임)이있는 레코드를 거의 얻으려고하지 않습니다. 첫 번째 클라이언트가 트랜잭션을 커밋하기 전에 다른 클라이언트가 읽기 전용 권한을 가진 행에 액세스하려고 시도 할 수도 있습니다. 트랜잭션 커밋 때까지 첫 번째 클라이언트에 의해 차단 된 두 번째 클라이언트의 행을 차단할 수 있습니다. Pls 날 안내. 미리 감사드립니다. 업데이트 쿼리가 완료 될 때까지 선택한 쿼리의 블록 행
0
A
답변
0
오라클에서 독자는 작성자와 작성자를 차단하지 않습니다. 독자는 결코 독자를 차단하지 않습니다. 따라서 다른 세션은 업데이트 프로세스가 수행중인 작업과 관계없이 항상 행의 현재 커밋 된 상태를 읽을 수 있습니다.
행을 읽을 수 없도록하려면 추가 잠금 로직을 코딩해야합니다. 독자는 WAIT
의 유무에 관계없이 SELECT ... FOR UPDATE
을 수행하여 작성자의 트랜잭션이 커밋 될 때까지 차단할 수 있습니다. 다른 테이블을 사용하여 잠금 논리를 작성할 수도 있습니다. 작성자가 갱신 프로세스가 진행 중이고 모든 판독기 프로세스가 해당 행을 읽을 수 있음을 나타내는 다른 테이블의 행을 갱신하는 일부 논리를 작성할 수 있습니다.
관련 문제
- 1. 쿼리가 완료 될 때까지 기다리는 방법 Collection보기
- 2. 쿼리가 완료 될 때까지 기다리는 방법을 변환하십시오.
- 3. db 쿼리가 완료 될 때까지 어떻게 대기해야합니까?
- 4. 각도 : 약속이 완료 될 때까지 블록/대기
- 5. 요청이 완료 될 때까지 액션 스크립트 블록
- 6. 완료 될 때까지 미래 블록 만들기
- 7. 쿼리가 완료 될 때까지 nginx 스레드가 잠겨 있습니까?
- 8. UNION ALL이 두 쿼리가 완료 될 때까지 기다리는 이유는 무엇입니까?
- 9. Grand Central Dispatch : 블록 큐가 완료 될 때까지 어떻게 대기합니까?
- 10. 방법은 블록이 완료 될 때까지 기다리지 않고, 블록 결과
- 11. RestKit - 이전 호출이 완료 될 때까지 블록 요청
- 12. fopen이 완료 될 때까지 Nacl_IO 블록 스레드가 실행됩니다.
- 13. 이전의 모든 대기열 항목이 완료 될 때까지 블록 실행 금지
- 14. 활동 완료 메소드가 완료 될 때까지 대기합니까?
- 15. 각도기가 완료 될 때까지 애니메이션 완료
- 16. ComboBox 선택한 항목이 SelectionChangedCommand의 실행이 완료 될 때까지 설정되지 않습니다.
- 17. 비동기 함수가 완료 될 때까지 대기
- 18. ios 블록이 완료 될 때까지 기다림
- 19. 명령이 완료 될 때까지 기다리십시오.
- 20. 이벤트가 완료 될 때까지 블로킹
- 21. 완료 될 때까지 Runnable을 잠급니다.
- 22. 작업이 완료 될 때까지 기다리십시오.
- 23. Application.Calculate가 완료 될 때까지 대기
- 24. 이벤트가 완료 될 때까지 기다림
- 25. 폼이 완료 될 때까지 기다린다
- 26. 이벤트가 완료 될 때까지 차단하십시오.
- 27. 컴파일이 완료 될 때까지 기다림
- 28. 스레드가 Java에서 완료 될 때까지 기다리십시오.
- 29. COM 이벤트가 완료 될 때까지 대기
- 30. 절차가 완료 될 때까지 마우스 클릭을 비활성화하십시오.
올바른 방향으로 나를 안내해 주셔서 감사합니다. – Venkat