Oracle에서 user_tables를 어떻게 잠글 수 있나요?
-
13-12-2019 - |
문제
다음 쿼리가 며칠 동안 중단된 것처럼 보이는 컴퓨터에서 추적이 있습니다.
SELECT table_name FROM user_tables
무엇이 그러한 잠금을 생성할 수 있습니까?사용자는 이 테이블을 수정할 수 없습니다.성공적으로 실행된 이 쿼리의 후속 인스턴스가 많이 있었습니다.
해결책
따라서 해당 조건이 더 이상 존재하지 않으므로 무슨 일이 일어났는지 알 수 있는 방법이 없습니다.
그러나 나중에 이와 유사한 일이 다시 발생하면 Oracle의 대기 인터페이스를 사용하는 것이 좋습니다.즉, 보세요. V$SESSION
.
먼저 프로세스가 회전 중인지(즉, CPU에서) 차단 중인지(즉, 대기 이벤트를 기다리는 중인지 확인해야 합니다.그것을 결정하는 방법은, STATE
열:
- 상태가 다음인 경우
'WAITING'
, 세션이 차단됩니다.그렇다면 EVENT 열은 세션이 기다리고 있는 이벤트를 설명해야 합니다. - STATE가 'WAITING'이 아닌 경우 세션은 CPU에 있고 EVENT 열은 마지막으로 기다린 것입니다.
- 상태가 다음인 경우
'WAITED KNOWN TIME'
, 이면 WAIT_TIME은 대기 시간(센티초)입니다. - 상태가 다음인 경우
'WAITED SHORT TIME'
, 그런 다음 세션은 100분의 1초도 채 걸리지 않았습니다. - 상태가 다음인 경우
'WAITED UNKNOWN TIME'
, 해당 세션에 대해 timed_statistics가 FALSE로 설정되었으므로 대기 시간을 알 수 없습니다.
- 상태가 다음인 경우
도움이 되길 바랍니다.
제휴하지 않습니다 StackOverflow