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