Postgres 및 ORACLE의 시스템 테이블에서 교착 상태가 해제되었는지 여부를 확인하고 싶습니다.Postgres의 테이블 교착 상태를 확인하는 쿼리
교착 상태를 확인하는 방법을 알려주십시오.
Postgres 및 ORACLE의 시스템 테이블에서 교착 상태가 해제되었는지 여부를 확인하고 싶습니다.Postgres의 테이블 교착 상태를 확인하는 쿼리
교착 상태를 확인하는 방법을 알려주십시오.
교착 상태가 발생하지 않습니다. Postgres 또는 Oracle에서 교착 상태를 발견하면 즉시 트랜잭션 중 하나가 중단됩니다. 이는 교착 상태가 본질적으로 개입없이 진행되지 않기 때문입니다.
당신이 할 수있는 것은 정상적인 자물쇠가 시스템에 존재하는지 그리고 얼마나 오래 있었는지를 보는 것입니다. 올바른 장소에서 커밋되지 않은 긴 느리게 실행되는 트랜잭션을 나타낼 수 시간 또는 코드를 개최
잠금 등
긴 보류 된 잠금은 교착 상태가 향후 발생 가능성을 증가 .
포스트 그레스
당신은 pg_locks보기를 통해이 작업을 수행 할 수 있습니다.
PostgreSQL의 위키는 https://wiki.postgresql.org/wiki/Lock_Monitoring
에 잠금보고에 대한 페이지를 가지고 있으며, pg_locks보기 https://www.postgresql.org/docs/current/static/view-pg-locks.html
오라클에 설명되어 있습니다
오라클은 또한 현재 잠금을 표시하는보기를 제공합니다하지만, 그들은 사용하기에 조금 더 복잡합니다. 당신은 당신이 실제로 한 후 잠금 장치는 일반적으로 유지되지 않기 때문에하는 제품이 무엇인지 약간의 시간을 할애해야하지만
인트로는 두 경우 모두 https://docs.oracle.com/cd/E11882_01/server.112/e40402/dynviews_2027.htm#REFRN30121
에서 참조 http://www.dba-oracle.com/t_grid_rac_db_locks_latches.htm
에서 확인할 수있다 동시에 전체 테이블에서 테이블의 다른 부분이 다른 트랜잭션에 의해 동시에 잠길 수 있습니다. 또한이 뷰에 표시되는 테이블 만이 아닙니다.
마찬가지로 서로 다른 잠금 유형 (공유, 독점 등)은 다양한 유형의 동시 활동을 차단합니다.
귀하의 질문에 이해가되지 않습니다. "테이블의 교착 상태"와 같은 것은 없습니다. 하나의 테이블은 교착 상태를 "절대적으로"가질 수 있습니다 **. 교착 상태 ** 항상 ** 적어도 두 개의 _transactions_ - 다음 세션/트랜잭션 교착 상태가 아닌 "테이블". –
만약'deadlock_timeout'을 수정하지 않았다면 Missisipi와 voila가 하나가 될 때까지 카운트합니다. –