thepg_visibility
모듈은 테이블의 스포츠 토토 베트맨 맵 (VM) 및 페이지 수준의 스포츠 토토 베트맨 정보를 검사하는 수단을 제공합니다. 또한 스포츠 토토 베트맨 맵의 무결성을 확인하고 강제로 재건하도록하는 기능을 제공합니다.
페이지 수준의 가시성에 대한 정보를 저장하는 데 세 가지 다른 비트가 사용됩니다. 가시성 맵의 모든 가시적 비트는 관계의 해당 페이지의 모든 튜플이 모든 현재 및 미래의 트랜잭션에 볼 수 있음을 나타냅니다. 가시성 맵의 모든 냉동 비트는 페이지의 모든 튜플이 동결되었음을 나타냅니다. 즉, 해당 페이지에 튜플이 삽입, 업데이트, 삭제 또는 잠겨있을 때까지 향후 진공 상태가 페이지를 수정할 필요가 없습니다. 페이지 헤더pd_all_visible
비트는 스포츠 토토 베트맨 맵에서 볼 수있는 비트와 동일한 의미를 지니고 있지만 별도의 데이터 구조가 아닌 데이터 페이지 자체에 저장됩니다. 이 두 비트는 일반적으로 동의하지만, 충돌 회복 후 스포츠 토토 베트맨 맵 비트가 명확한 반면, 페이지의 모든 가시 가능한 비트는 때때로 설정 될 수 있습니다. 보고 된 값은 또한 이후에 발생하는 변화로 인해 동의하지 않을 수 있습니다pg_visibility
스포츠 토토 베트맨 맵을 검사하고 데이터 페이지를 검사하기 전에. 데이터 손상을 일으키는 모든 사건은 이러한 비트가 동의하지 않을 수 있습니다.
정보를 표시하는 기능pd_all_visible
비트는 스포츠 토토 베트맨 맵에만 문의하는 것보다 훨씬 더 비싸다. 관계의 데이터 블록을 확인하는 기능은 비슷합니다.
pg_visibility_map (관계 regclass, blkno bigint, all_visible out boolean, all_frozen out boolean)을 반환합니다
주어진 관계의 주어진 블록에 대한 스포츠 토토 베트맨 맵에서 모든 스포츠 토토 베트맨 및 모든 냉동 비트를 반환합니다..
pg_visibility (관계 regclass, blkno bigint, all_visible out boolean, all_frozen out boolean, pd_all_visible out boolean) 레코드를 반환합니다
주어진 관계의 주어진 블록에 대한 스포츠 토토 베트맨 맵에서 all-visible 및 all-frozen 비트를 반환합니다.pd_all_visible
그 블록의 비트.
pg_visibility_map (관계 regclass, blkno out bigint, all_visible out boolean, all_frozen out boolean)을 반환합니다
주어진 관계의 각 블록에 대한 스포츠 토토 베트맨 맵에서 모든 스포츠 토토 베트맨 및 모든 냉동 비트를 반환합니다.
pg_visibility (관계 regclass, blkno out bigint, all_visible out boolean, all_frozen out boolean, pd_all_visible out boolean) record 반환
주어진 관계의 각 블록에 대한 스포츠 토토 베트맨 맵에서 all-visible 및 all-frozen 비트를 반환하고pd_all_visible
각 블록의 비트.
pg_visibility_map_summary (관계 regclass, all_visible out bigint, all_frozen out bigint)를 반환합니다
스포츠 토토 베트맨 맵에 따라 모든 가시 가능한 페이지의 수와 관계의 모든 프록 린 페이지 수를 반환합니다.
PG_CHECK_FROZEN (REGCLASS, T_CTID OUT TID)을 반환합니다.
스포츠 토토 베트맨 맵에서 모두 프록 린으로 표시된 페이지에 저장된 비 프로젠 튜플의 TID를 반환합니다. 이 함수가 비어 있지 않은 TID 세트를 반환하면 스포츠 토토 베트맨 맵이 손상되었습니다.
pg_check_visible (관계 regclass, t_ctid out tid)을 반환합니다.
스포츠 토토 베트맨 맵에 볼 수있는 페이지에 저장된 파일이 아닌 튜플의 TID를 반환합니다. 이 함수가 비어 있지 않은 TID 세트를 반환하면 스포츠 토토 베트맨 맵이 손상되었습니다.
pg_truncate_visibility_map (관계 regclass) 반환 void
주어진 관계에 대한 스포츠 토토 베트맨 맵을 잘라냅니다. 이 기능은 관계의 스포츠 토토 베트맨 맵이 손상되어 재건을 강요하고 싶다고 생각하는 경우 유용합니다. 첫 번째진공
이 함수가 실행 된 후 주어진 관계에서 실행되면 관계의 모든 페이지를 스캔하고 스포츠 토토 베트맨 맵을 재 구축합니다. (그 일이 끝날 때까지 쿼리는 스포츠 토토 베트맨 맵을 모든 0을 포함하는 것으로 취급합니다.)
기본적으로 이러한 기능은 슈퍼업자와 멤버에 의해서만 실행됩니다PG_STAT_SCAN_TABLE
역할, 예외pg_truncate_visibility_map (관계 regclass)
슈퍼 유행자 만 실행할 수 있습니다.
Robert Haas<rhaas@postgresql.org
문서에 올바른 것이없는 것이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면