Postgresql 9.2.24 문서 | ||||
---|---|---|---|---|
젠 토토 : 문서 : 9.2 : PG_INDEXES | up | 45 장. 시스템 카탈로그 | 다음 |
보기PG_LOCKS액세스를 제공합니다 공개 거래에서 보유한 자물쇠에 대한 정보에 데이터베이스 서버. 보다사설 토토 : 문서 : 9.2 : 동시성 제어토토 사이트 추천에 대한 더 많은 토론.
pg_locks당 1 행을 포함합니다 활성 잠금 가능 객체, 요청 된 잠금 모드 및 관련성 거래. 따라서 동일한 잠긴 물체가 많이 보일 수 있습니다 시간, 여러 거래가 잠금을 보유하거나 대기하는 경우 그것에. 그러나 현재 잠금 장치가없는 객체는 전혀 나타나지 않습니다.
몇 가지 고유 한 유형의 잠글 수있는 객체가 있습니다 : 전체 관계 (예 : 테이블), 개별 관계 페이지, 관계의 개별 튜플, 트랜잭션 ID (모두 가상 및 영구 ID) 및 일반 데이터베이스 개체 (클래스로 식별 Oid 및 Object Oid,과 같은 방식으로pg_description또는pg_depender). 또한 확장 할 권리 a 관계는 별도의 토토 사이트 추천 가능 객체로 표시됩니다. 또한,"자문"토토 사이트 추천 장치를 사용할 수 있습니다 사용자 정의 의미가있는 숫자.
표 45-59.pg_locks열
이름 | 타입 | 참조 | 설명 |
---|---|---|---|
LockType | 텍스트 | 토토 사이트 추천 식 개체의 유형 :관계, Extend, 페이지, 튜플, TransactionId, virtualxid, 개체, UserLock, 또는자문 | |
데이터베이스 | OID | pg_database.Oid | 잠금 대상이 존재하는 데이터베이스의 OID, 또는 대상이 공유 객체 인 경우 0 또는 대상은 거래 ID입니다. |
관계 | OID | pg_class.Oid | 잠금 장치를 대상으로하는 관계의 OID 또는 if 대상은 관계 또는 관계의 일부가 아닙니다 |
page | 정수 | 관계 내의 잠금을 대상으로하는 페이지 번호, 또는 대상이 관계 페이지가 아닌 경우 튜플 | |
튜플 | 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 | |
FastPath | 부울 | FAST PATH를 통해 토토 사이트 추천을 가져간 경우 True, 찍은 경우 False 메인 토토 사이트 추천 테이블을 통해 |
부여연속으로 참입니다 표시된 트랜잭션에 의해 보유 된 잠금을 나타냅니다. 거짓 이 거래가 현재 인수를 기다리고 있음을 나타냅니다 이 자물쇠는 다른 거래가 동일한 잠금 가능 객체의 충돌 잠금 모드. 대기 중 거래가 다른 자물쇠가 릴리스 될 때까지 (또는 교착 상태 상황이 감지됩니다). 단일 거래는 가능합니다 한 번에 최대 한 자물쇠를 얻기를 기다리고 있습니다.
모든 트랜잭션은 가상에 대한 독점 잠금 장치를 보유합니다 전체 기간 동안 트랜잭션 ID. 영구 ID 인 경우 거래에 할당 된 (일반적으로 발생하는 경우에만 발생합니다. 트랜잭션은 데이터베이스의 상태를 변경합니다. 영구 거래 ID가 끝날 때까지 독점 잠금. 하나의 거래가 특별히 대기 할 필요가있는 경우 또 다른 거래, 공유를 취득하려고 시도합니다. 다른 트랜잭션 ID를 잠그십시오 (가상 또는 영구 ID 상황에 따라). 그것은 만에만 성공할 것입니다 다른 거래는 자물쇠를 종료하고 릴리스합니다.
튜플은 잠긴 유형의 물체이지만 정보입니다 로드 레벨 잠금 정보는 메모리가 아닌 디스크에 저장되며 따라서이 뷰에서는 줄 수준의 잠금이 일반적으로 나타나지 않습니다. 만약에 트랜잭션은로드 레벨 잠금을 기다리고 있습니다. 일반적으로 영구 거래 ID를 기다리는 것으로보기에 나타납니다. 그 행 잠금의 현재 보유자.
자문 잠금 장치는 하나의bigint값 또는 두 정수 값. 에이bigint키가 표시됩니다 고차 절반classId열, 저음 절반의objid열,objsubid1과 동일합니다. 정수 키가 있습니다 의 첫 번째 키로 표시classId열, 두 번째 키objid열,objsubid2와 같습니다 키는 사용자에게 달려 있습니다. 자문 잠금 장치는 각각에 현지입니다 데이터베이스, 그래서데이터베이스열은 자문 잠금에 의미가 있습니다.
pg_locks글로벌 관점을 제공합니다 데이터베이스 클러스터의 모든 잠금은 현재 데이터베이스. 비록관계열에 가입 할 수 있습니다PG_CLASS.OID잠긴 관계를 식별하려면 이것이 그럴 것입니다 현재 데이터베이스의 관계에 대해서만 올바르게 작동합니다 (데이터베이스열은 현재 데이터베이스의 OID 또는 0).
thePID열에 가입 할 수 있습니다 그만큼PID열의 열pg_stat_activity더 많은 것을 얻으려면 세션 보유 또는 각 자물쇠를 대기하기 위해 대기하는 정보, 예를 들어
선택 * PG_LOCKS FROM LEFT PG_STAT_ACTIVITY PSA에 가입하십시오 on pl.pid = psa.pid;
또한 준비된 트랜잭션을 사용하는 경우VirtualTransaction열에 가입 할 수 있습니다거래열의 열PG_PREPARED_XACTS더 많은 것을 얻으려면 잠금 장치를 보유하는 준비된 거래에 대한 정보. (준비된 거래는 자물쇠를 기다릴 수 없지만 계속 실행 중에 획득 한 자물쇠를 잡습니다.) 예 :
선택 *에서 * PG_LOCKS FROM PL LEFT PG_PREPARED_XACTS PPX 가입 pl.VirtualTransaction = '-1/'||에서 ppx.Transaction;
thePG_LOCKS보기 데이터가 표시됩니다 일반 잠금 관리자와 술어 잠금 장치에서 별도의 시스템 인 관리자; 또한 일반 잠금 관리자는 자물쇠를 정기적으로 세분화하고빠른 경로잠금. 이 데이터는 보장되지 않습니다 완전히 일관성을 유지하십시오. 보기가 쿼리되면 데이터가 켜집니다 빠른 경로 잠금 장치 (withFastPath=true)는 각 백엔드에서 수집됩니다 한 번에 전체 잠금 관리자의 상태를 얼지 않고 따라서 자물쇠를 가져 가거나 출시 할 수 있습니다. 정보가 수집됩니다. 그러나이 자물쇠는이 자물쇠가 있습니다 현재 다른 자물쇠와 충돌하지 않는 것으로 알려져 있습니다. 모든 백엔드가 빠른 경로 잠금을 위해 쿼리 된 후 일반 잠금 관리자의 나머지는 단위로 잠겨 있으며 나머지 자물쇠의 일관된 스냅 샷은 원자 작용. 일반 잠금 관리자를 잠금 해제 한 후 술어 잠금 관리자는 비슷하게 잠겨 있으며 모든 술어입니다 자물쇠는 원자 작용으로 수집됩니다. 따라서 예외가 있습니다 빠른 경로 잠금 장치로 각 잠금 관리자는 일관된 것을 제공합니다. 결과 세트, 그러나 우리는 두 자물쇠 관리자를 잠그지 않기 때문에 동시에 자물쇠를 가져 가거나 해제 할 수 있습니다. 우리가 일반 잠금 관리자를 심문 한 후 술어 잠금 관리자를 심문하십시오.
일반 및/또는 술어 잠금 관리자를 잠그십시오 이보기가 매우 자주 접근했습니다. 자물쇠는 최소에 대해서만 고정됩니다 잠금 관리자로부터 데이터를 얻는 데 필요한 시간, 그러나 이것이의 가능성을 완전히 제거하지는 않습니다. 성능 영향.