이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다토토 사이트 순위 PostgreSQL : 문서 : 17 : 52.12. pg_locks버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

45.56. PG_LOCKS

보기PG_LOCKS액세스를 제공합니다 공개 거래에서 보유한 자물쇠에 대한 정보에 데이터베이스 서버. 보다스포츠 토토 결과 : 문서 : 9.1 : 동시성 제어스포츠 토토 사이트에 대한 더 많은 토론.

pg_locks당 하나의 행을 포함합니다 활성 잠금 가능 객체, 요청 된 잠금 모드 및 관련성 거래. 따라서 동일한 잠긴 물체가 많이 보일 수 있습니다 시간, 여러 거래가 잠금을 보유하거나 대기하는 경우 그것에. 그러나 현재 잠금 장치가없는 객체는 전혀 나타나지 않습니다.

몇 가지 고유 한 유형의 잠글 수있는 객체가 있습니다 : 전체 관계 (예 : 테이블), 개별 관계 페이지, 관계의 개별 튜플, 트랜잭션 ID (모두 가상 및 영구 ID) 및 일반 데이터베이스 개체 (클래스로 식별 Oid 및 Object Oid,과 같은 방식으로pg_description또는pg_depender). 또한 확장 할 권리 a 관계는 별도의 스포츠 토토 사이트 가능 객체로 표시됩니다. 또한,"자문"스포츠 토토 사이트 장치를 사용할 수 있습니다 사용자 정의 의미가있는 숫자.

표 45-57.pg_locks

이름 타입 참조 설명
Locktype 텍스트 스포츠 토토 사이트 식 개체의 유형 :관계, Extend, page, 튜플, TransactionId, virtualxid, 개체, UserLock, 또는자문
데이터베이스 OID pg_database.Oid 객체가 존재하는 데이터베이스의 OID 또는 객체가 공유 객체 인 경우 0 또는 객체는 트랜잭션 ID입니다
관계 OID pg_class.Oid 관계의 OID 또는 객체가없는 경우 NULL 관계 또는 관계의 일부
페이지 Integer 관계 내의 페이지 번호 또는 객체는 튜플 또는 관계 페이지가 아닙니다
튜플 smallint 페이지 내의 튜플 번호 또는 객체 인 경우 null 튜플이 아닙니다
virtualxid 텍스트 트랜잭션의 가상 ID 또는 객체가있는 경우 NULL 가상 트랜잭션 ID가 아님
TransactionId xid 트랜잭션의 ID 또는 객체가 아닌 경우 NULL 거래 ID
classID OID pg_class.Oid 객체를 포함하는 시스템 카탈로그의 OID 객체가 일반 데이터베이스 개체가 아닌 경우 null
objid OID 모든 OID 열 시스템 카탈로그 내에서 객체의 OID 또는 NULL 객체가 일반 데이터베이스 개체가 아닌 경우
objsubid smallint 열 번호 자물쇠를 대상으로합니다 (classIdandobjid테이블 자체를 참조하십시오), 또는 0이 대상이 다른 일반 데이터베이스 객체 인 경우 또는 대상이 일반 데이터베이스가 아닌 경우 NULL 물체
VirtualTransaction 텍스트 보유하고있는 트랜잭션의 가상 ID 이 자물쇠를 기다리고
PID Integer 서버 프로세스 보유 또는 기다리고있는 프로세스 ID 이 자물쇠 또는 잠금 장치가 준비된 경우 거래
모드 텍스트 이 프로세스에서 보유하거나 원하는 잠금 모드의 이름 (보다섹션 13.3.1and섹션 13.2.3)
부여 부울 진실 스포츠 토토 사이트 장치가 유지되면, 스포츠 토토 사이트이 기다리고있는 경우 false

부여연속으로 참입니다 표시된 트랜잭션에 의해 보유 된 잠금을 나타냅니다. 거짓 이 거래가 현재 인수를 기다리고 있음을 나타냅니다 이 자물쇠는 다른 거래가 동일한 잠금 가능 객체의 충돌 잠금 모드. 대기 중 거래가 다른 자물쇠가 릴리스 될 때까지 (또는 교착 상태 상황이 감지됩니다). 단일 거래는 가능합니다 한 번에 최대 한 자물쇠를 얻기를 기다리고 있습니다.

모든 트랜잭션은 가상에 대한 독점 잠금 장치를 보유합니다 전체 기간 동안 트랜잭션 ID. 영구 ID 인 경우 거래에 할당 된 (일반적으로 발생하는 경우에만 발생합니다. 트랜잭션은 데이터베이스의 상태를 변경합니다. 영구 거래 ID가 끝날 때까지 독점 잠금. 하나의 거래가 특별히 대기 할 필요가있는 경우 또 다른 거래, 공유를 취득하려고 시도합니다. 다른 트랜잭션 ID를 잠그십시오 (가상 또는 영구 ID 상황에 따라). 그것은 만에만 성공할 것입니다 다른 거래는 자물쇠를 종료하고 릴리스합니다.

튜플은 잠글 수있는 유형의 물체이지만 정보입니다 로드 레벨 잠금 정보는 메모리가 아닌 디스크에 저장되며 따라서이 뷰에서는 줄 수준의 잠금이 일반적으로 나타나지 않습니다. 만약에 트랜잭션은로드 레벨 잠금을 기다리고 있습니다. 일반적으로 영구 거래 ID를 기다리는 것으로보기에 나타납니다. 그 행 잠금의 현재 보유자.

자문 잠금 장치는 하나의bigint값 또는 두 정수 값. 에이bigint키가 표시됩니다 고차 절반classId열, 저음 절반의 절반objid열,objsubid1과 동일합니다. 정수 키가 있습니다 의 첫 번째 키로 표시classId열, 두 번째 키objid열,objsubid2와 같습니다 키는 사용자에게 달려 있습니다. 자문 잠금 장치는 각각에 현지입니다 데이터베이스, 그래서데이터베이스열은 자문 잠금에 의미가 있습니다.

pg_locks글로벌 관점을 제공합니다 데이터베이스 클러스터의 모든 잠금은 현재 데이터베이스. 비록관계열에 가입 할 수 있습니다pg_class.OID잠긴 관계를 식별하려면 이것이 그럴 것입니다 현재 데이터베이스의 관계에 대해서만 올바르게 작동합니다 (데이터베이스열은 현재 데이터베이스의 OID 또는 0).

thePID열에 가입 할 수 있습니다 그만큼Procpid열의 열pg_stat_activity더 많은 것을 얻으려면 세션 보유 또는 각 자물쇠를 대기하기 위해 대기하는 정보, 예를 들어

선택 *에서 PG_LOCKS FROM PL LEFT PG_STAT_ACTIVITY PSA에 가입하십시오
    on pl.pid = psa.procpid;

또한 준비된 트랜잭션을 사용하는 경우VirtualTransaction열에 가입 할 수 있습니다거래열의 열PG_PREPARED_XACTS더 많은 것을 얻으려면 잠금 장치를 보유하는 준비된 거래에 대한 정보. (준비된 거래는 자물쇠를 기다릴 수 없지만 계속 실행 중에 획득 한 자물쇠를 잡습니다.) 예 :

선택 * PG_LOCKS FROM PL LEFT PG_PREPARED_XACTS PPX
    pl.VirtualTransaction = '-1/'||에서 ppx.Transaction;

thePG_LOCKS보기 데이터는 데이터를 표시합니다 일반 잠금 관리자와 술어 잠금 장치에서 별도의 시스템 인 관리자. 이 견해에 액세스 할 때 각 잠금 관리자의 내부 데이터 구조는 순간적으로 잠겨 있으며 전망을 표시하려면 사본이 제작됩니다. 각 잠금 따라서 관리자는 일관된 결과 세트를 생성하지만 우리는 두 자물쇠 관리자를 동시에 잠그지 않기 때문에 우리가 심문 후 자물쇠를 가져갈 수 있습니다. 일반 잠금 관리자와 우리가 술어를 심문하기 전에 잠금 관리자. 각 잠금 관리자는 최소 만 고정됩니다 쿼리의 성능 영향을 줄이기 위해 가능한 시간 이 견해이지만 그럼에도 불구하고 약간의 영향이있을 수 없었습니다. 자주 액세스하는 경우 데이터베이스 성능.