이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.토토 사이트 순위 PostgreSQL : 문서 : 17 : 52.12. pg_locks버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

47.59. pg_locks

보기pg_locks액세스 제공 열린 트랜잭션이 보유한 잠금에 대한 정보 데이터베이스 서버. 참조메이저 토토 사이트 : 문서 : 9.3 : 동시성 제어더 보기 잠금에 대해 논의합니다.

pg_locks활성당 하나의 행을 포함합니다. 잠글 수 있는 객체, 요청된 잠금 모드 및 관련 트랜잭션. 따라서 동일한 잠금 가능 개체가 여러 번 나타날 수 있습니다. 트랜잭션이 잠금을 보유하거나 기다리고 있습니다. 그러나 현재 잠금이 없는 개체는 표시되지 않습니다. 모두.

잠글 수 있는 개체에는 여러 가지 유형이 있습니다. 전체 관계(예: 테이블), 관계의 개별 페이지, 개별 관계 튜플, 트랜잭션 ID(가상 및 영구 모두) ID) 및 일반 데이터베이스 객체(클래스 OID로 식별되며 객체 OID, 같은 방식으로pg_description또는pg_dependent). 또한, 관계를 연장할 권리도 있습니다. 별도의 잠글 수 있는 객체로 표시됩니다. 또한,"권고"다음 번호에 잠금을 설정할 수 있습니다. 사용자 정의 의미.

표 47-60.pg_locks

이름 유형 참고자료 설명
자물쇠 유형 텍스트 잠금 가능한 개체의 유형:관계, 확장, 페이지, 튜플, 트랜잭션ID, virtualxid, 객체, 사용자 토토 사이트 추천, 또는권고
데이터베이스 oid pg_database.oid 잠금 대상이 존재하는 데이터베이스의 OID 또는 0인 경우 대상이 공유 객체이거나, 대상이 공유 객체인 경우 null입니다. 거래 ID
관계 oid pg_class.oid 잠금 대상 관계의 OID, 대상인 경우 null 관계 또는 관계의 일부가 아닙니다.
페이지 정수 관계 내에서 잠금 대상 페이지 번호 또는 null 대상이 관계 페이지나 튜플이 아닌 경우
튜플 smallint 페이지 내 잠금의 대상이 되는 튜플 번호, 또는 null인 경우 대상이 튜플이 아닙니다.
virtualxid 텍스트 잠금 대상 트랜잭션의 가상 ID, 또는 null인 경우 대상이 가상 거래 ID가 아닙니다
트랜잭션ID xid 잠금 대상 트랜잭션의 ID, 또는 대상은 거래 ID가 아닙니다.
고급 oid pg_class.oid 잠금 대상을 포함하는 시스템 카탈로그의 OID 또는 null 대상이 일반 데이터베이스 객체가 아닌 경우
오브지드 oid 모든 OID 열 해당 시스템 카탈로그 내 잠금 대상의 OID, 또는 null인 경우 대상이 일반 데이터베이스 개체가 아닙니다.
objsubid smallint 토토 사이트 추천 대상 열 번호(고급그리고오브지드테이블 자체 참조) 또는 대상이 다른 경우 0 일반 데이터베이스 개체 또는 대상이 일반이 아닌 경우 null 데이터베이스 개체
가상 거래 텍스트 이를 보유하거나 기다리는 거래의 가상 ID 자물쇠
pid 정수 이 잠금을 보유하거나 기다리는 서버 프로세스의 프로세스 ID, 또는 준비된 트랜잭션에 의해 잠금이 유지되는 경우 null입니다.
모드 텍스트 이 프로세스에 의해 유지되거나 원하는 잠금 모드의 이름(참조섹션 13.3.1그리고섹션 13.2.3)
부여 부울 토토 사이트 추천이 유지되면 참, 토토 사이트 추천이 대기되면 거짓
빠른 경로 부울 빠른 경로를 통해 잠금을 수행한 경우 참, 기본 경로를 통해 잠금을 수행한 경우 거짓 테이블 잠금

부여연속해서 참입니다 표시된 트랜잭션이 보유한 잠금을 나타냅니다. 거짓 이 거래가 현재 획득을 기다리고 있음을 나타냅니다. 이 잠금은 다른 트랜잭션이 동일한 잠글 수 있는 개체에 대한 잠금 모드가 충돌합니다. 기다림 트랜잭션은 다른 잠금이 해제될 때까지(또는 교착상태가 감지됨). 단일 거래가 가능합니다. 한 번에 최대 하나의 잠금을 획득하기를 기다리고 있습니다.

모든 거래는 가상 거래에 배타적 잠금을 보유합니다. 전체 기간 동안의 거래 ID입니다. 영구 신분증인 경우 거래에 할당됨(일반적으로 다음과 같은 경우에만 발생함) 트랜잭션이 데이터베이스의 상태를 변경함), 또한 종료될 때까지 영구 트랜잭션 ID에 대한 배타적 잠금이 수행됩니다. 언제 한 거래가 다른 거래를 특별히 기다려야 한다고 생각하는 경우 트랜잭션에 대한 공유 잠금을 획득하려고 시도하여 이를 수행합니다. 기타 거래 ID(가상 ID 또는 영구 ID) 상황). 다른 트랜잭션이 실행될 때만 성공합니다. 종료하고 잠금을 해제합니다.

튜플은 잠글 수 있는 객체 유형이지만 다음에 대한 정보는 행 수준 잠금은 메모리가 아닌 디스크에 저장되므로 행 수준 잠금은 일반적으로 이 보기에 표시되지 않습니다. 만약 트랜잭션이 행 수준 잠금을 기다리고 있는 경우 일반적으로 나타납니다. 영구 트랜잭션 ID를 기다리는 것으로 간주됩니다. 해당 행 잠금의 현재 보유자입니다.

보조 잠금은 다음 중 하나로 구성된 키에 대해 획득할 수 있습니다. 싱글비긴트값 또는 두 개의 정수 값. 갑비긴트키는 상위 순서로 표시됩니다. 절반은고급열, 그 의 하위 절반오브지드열, 그리고objsubid1. 원본과 동일bigint값은 다음과 같이 재조립될 수 있습니다. 표현(classid::bigint << 32) | 개체 ID::bigint. 정수 키는 첫 번째 키와 함께 표시됩니다. 에서고급열, 두 번째 키 에서오브지드열 및objsubid2와 같습니다. 실제 의미는 키는 사용자에게 달려 있습니다. 권고 잠금은 각 데이터베이스에 대해 로컬입니다. 그래서데이터베이스열이 의미가 있습니다. 권고 잠금의 경우.

pg_locks글로벌 보기를 제공합니다. 관련된 잠금뿐만 아니라 데이터베이스 클러스터의 모든 잠금 현재 데이터베이스. 비록관계열을 조인할 수 있음pg_class.oid에 잠긴 관계를 식별하면 이는 다음 경우에만 올바르게 작동합니다. 현재 데이터베이스의 관계(데이터베이스열은 현재 데이터베이스의 열입니다. OID 또는 0).

pid열은 다음에 조인될 수 있습니다.pidpg_stat_activity자세한 정보를 보려면 보기를 참조하세요. 각 잠금을 보유하거나 보유하기를 기다리는 세션에서 예

SELECT * FROM pg_locks pl 왼쪽 조인 pg_stat_activity psa
    ON pl.pid = psa.pid;

또한 준비된 트랜잭션을 사용하는 경우,가상 거래열은 다음에 조인될 수 있습니다.거래pg_prepared_xacts더 많은 정보를 얻으려면 보기 잠금을 보유한 준비된 트랜잭션에 대한 정보입니다. (준비된 트랜잭션은 잠금을 기다릴 수 없지만 계속해서 잠금이 발생합니다. 실행하는 동안 획득한 잠금을 유지합니다.) 예:

SELECT * FROM pg_locks pl 왼쪽 조인 pg_prepared_xacts ppx
    ON pl.virtualtransaction = '-1/' || ppx.transaction;

pg_locks보기는 다음의 데이터를 표시합니다. 일반 잠금 관리자와 조건자 잠금 관리자 모두 별도의 시스템입니다. 또한, 일반 잠금 관리자 잠금을 일반 잠금으로 세분화하고빠른 경로잠금. 이 데이터는 보장되지 않습니다. 완전히 일관성이 있습니다. 뷰를 쿼리하면 빠른 경로의 데이터가 자물쇠(함께빠른 경로 = 사실)는 각 백엔드에서 한 번에 하나씩 수집됩니다. 전체 잠금 관리자의 상태를 동결하지 않고 정보가 저장되는 동안 잠금을 가져오거나 해제할 수 있습니다. 모였습니다. 그러나 이러한 잠금은 충돌하지 않는 것으로 알려져 있습니다. 현재 다른 잠금 장치가 있는 경우. 모든 백엔드가 완료되면 빠른 경로 잠금에 대해 쿼리되었으며 나머지 일반 잠금은 관리자는 하나의 단위로 잠겨 있으며 모든 항목에 대한 일관된 스냅샷이 생성됩니다. 나머지 잠금은 원자적 작업으로 수집됩니다. 잠금 해제 후 일반 잠금 관리자, 조건자 잠금 관리자도 비슷합니다. 잠겨 있고 모든 조건자 잠금은 원자적 작업으로 수집됩니다. 따라서 빠른 경로 잠금을 제외하고 각 잠금 관리자는 일관된 결과 세트를 제공하지만 둘 다 잠그지 않으므로 잠금 관리자를 동시에 사용하면 잠금을 가져올 수 있습니다. 또는 일반 잠금 관리자를 심문한 후 해제하고 조건자 잠금 관리자를 심문하기 전에.

일반 및/또는 조건자 잠금 관리자를 잠그면 다음이 발생할 수 있습니다. 이 보기가 매우 자주 발생하는 경우 데이터베이스 성능에 약간의 영향을 미칩니다. 액세스했습니다. 잠금은 최소한의 시간 동안만 유지됩니다. 잠금 관리자로부터 데이터를 얻는 데 필요하지만 이는 그렇지 않습니다. 성능에 영향을 미칠 가능성을 완전히 제거합니다.