thepgstattuple
모듈은 배트맨 토토 레벨 통계를 얻기위한 다양한 기능을 제공합니다.
이러한 함수는 자세한 페이지 수준 정보를 반환하기 때문에 기본적으로 액세스가 제한됩니다. 기본적으로 역할 만PG_STAT_SCAN_TABLE
hasexecute
특권. 물론 슈퍼업자들은이 제한을 우회합니다. 연장이 설치되면 사용자가 발행 할 수 있습니다grant
다른 사람들이이를 실행할 수 있도록 함수의 권한을 변경하도록 명령합니다. 그러나 해당 사용자를에 추가하는 것이 바람직 할 수 있습니다.PG_STAT_SCAN_TABLE
대신 역할.
pgstattuple (regclass) 레코드를 반환
pgstattuple
관계의 물리적 길이를 반환합니다.“죽은”배트맨 토토 및 기타 정보. 이는 사용자가 진공이 필요한지 여부를 결정하는 데 도움이 될 수 있습니다. 인수는 대상 관계의 이름 (선택적으로 스키마 자격) 또는 OID입니다. 예를 들어:
test = select * from pgstattuple ( 'pg_catalog.pg_proc'); -[레코드 1] ------+------- table_len | 458752 tuple_count | 1470 tuple_len | 438896 tuple_percent | 95.67 dead_tuple_count | 11 dead_tuple_len | 3157 dead_tuple_percent | 0.69 free_space | 8932 free_percent | 1.95
출력 열은에 설명되어 있습니다.테이블 F.23.
표 F.23. pgstattuple
출력 열
컬럼 | 타입 | 설명 |
---|---|---|
table_len |
bigint |
바이트의 물리적 관계 길이 |
tuple_count |
bigint |
살아있는 배트맨 토토 수 |
tuple_len |
bigint |
바이트의 살아있는 배트맨 토토의 총 길이 |
tuple_percent |
float8 |
살아있는 배트맨 토토 비율 |
dead_tuple_count |
bigint |
죽은 튜플 수 |
dead_tuple_len |
bigint |
바이트의 죽은 튜플의 총 길이 |
dead_tuple_percent |
float8 |
죽은 튜플 비율 |
free_space |
bigint |
바이트의 총 여유 공간 |
free_percent |
float8 |
여유 공간 비율 |
thetable_len
항상의 합보다 클 것입니다tuple_len
, dead_tuple_len
andfree_space
. 차이는 고정 된 페이지 오버 헤드, PAGE 당 포인터의 튜플 테이블 및 튜플이 올바르게 정렬되도록 패딩에 의해 설명됩니다..
pgstattuple
관계에 대한 읽기 잠금 만 취득합니다. 따라서 결과는 즉각적인 스냅 샷을 반영하지 않습니다. 동시 업데이트는 그들에게 영향을 미칩니다.
pgstattuple
배트맨 토토 is 판단“죽은”ifHeaptuplesatisdirty
거짓을 반환합니다.
pgstattuple (텍스트) 레코드를 반환
이것은와 동일합니다.pgstattuple (regclass)
- 대상 관계가 텍스트로 지정된다는 점을 제외하고. 이 기능은 지금까지 후진 호환성으로 인해 유지되며 향후 릴리스에서는 더 이상 사용되지 않습니다.
pgstatindex (regclass) 레코드를 반환
pgstatindex
B-Tree 지수에 대한 정보를 보여주는 레코드를 반환합니다. 예를 들어:
test = select * from pgstatindex ( 'pg_cast_oid_index'); -[레코드 1] ------+------ 버전 | 2 tree_level | 0 index_size | 16384 root_block_no | 1 내부_Pages | 0 Leaf_Pages | 1 empty_pages | 0 deleted_pages | 0 avg_leaf_density | 54.27 Leaf_fragmentation | 0
출력 열은 다음과 같습니다.
열 | 타입 | 설명 |
---|---|---|
버전 |
Integer |
B- 트리 버전 번호 |
Tree_Level |
Integer |
루트 페이지의 트리 레벨 |
index_size |
bigint |
바이트의 총 인덱스 크기 |
root_block_no |
bigint |
루트 페이지의 위치 (제로이면 없음) |
Internal_Pages |
bigint |
수“내부”(상위 레벨) 페이지 |
Leaf_Pages |
bigint |
잎 페이지 수 |
empty_pages |
bigint |
빈 페이지 수 |
deleted_pages |
bigint |
삭제 된 페이지 수 |
avg_leaf_density |
float8 |
잎 페이지의 평균 밀도 |
Leaf_Fragmentation |
float8 |
잎 페이지 조각화 |
보고 된index_size
일반적으로 다음과 같이 설명하는 것보다 하나의 페이지에 해당합니다Internal_Pages + Leaf_Pages + empty_pages + deleted_pages
, 지수의 메타지도 포함되기 때문에
withpgstattuple
, 결과는 페이지별로 축적되며 전체 인덱스의 순간 스냅 샷을 나타내지 않아야합니다..
pgstatindex (텍스트) 레코드를 반환
이것은와 동일합니다.pgstatindex (regclass)
20961_21126
pgstatginindex (regclass) 레코드를 반환
pgstatginindex
진 지수에 대한 정보를 보여주는 레코드를 반환합니다. 예를 들어:
test = select * from pgstatginindex ( 'test_gin_index'); -[레코드 1]-+- 버전 | 1 Pending_Pages | 0 pending_tuples | 0
출력 열은 다음과 같습니다.
컬럼 | Type | 설명 |
---|---|---|
버전 |
정수 |
진 버전 번호 |
pending_pages |
Integer |
보류중인 목록의 페이지 수 |
pending_tuples |
bigint |
보류중인 목록의 배트맨 토토 수 |
pgstathashIndex (regclass) 레코드를 반환
pgstathashindex
해시 지수에 대한 정보를 보여주는 레코드를 반환합니다. 예를 들어:
test = select * from pgstathashIndex ( 'con_hash_index'); -[레코드 1]-+--------------- 버전 | 4 Bucket_Pages | 33081 오버 플로우 _pages | 0 bitmap_pages | 1 UNUSED_PAGES | 32455 live_items | 10204006 dead_items | 0 free_percent | 61.8005949100872
출력 열은 다음과 같습니다.
열 | 타입 | 설명 |
---|---|---|
버전 |
Integer |
해시 버전 번호 |
Bucket_Pages |
bigint |
버킷 페이지 수 |
OverFlow_Pages |
bigint |
오버플로 페이지 수 |
bitmap_pages |
bigint |
비트 맵 페이지 수 |
UNUSED_PAGES |
bigint |
사용하지 않은 페이지 수 |
live_items |
bigint |
살아있는 배트맨 토토 수 |
dead_tuples |
bigint |
죽은 튜플 수 |
free_percent |
float |
여유 공간 비율 |
PG_RELPAGES (regclass) Bigint를 반환합니다
PG_RELPAGES
관계의 페이지 수를 반환합니다.
PG_RELPAGES (텍스트) BIGINT를 반환
이것은와 동일합니다.pg_relpages (regclass)
- 대상 관계가 텍스트로 지정된다는 점을 제외하고. 이 기능은 지금까지 후진 호환성으로 인해 유지되며 향후 릴리스에서는 더 이상 사용되지 않습니다.
pgstattuple_Approx (regclass) 레코드를 반환
pgstattuple_Approx
더 빠른 대안입니다pgstattuple
대략적인 결과를 반환합니다. 인수는 대상 관계의 이름 또는 OID입니다. 예를 들어:
test = select * from pgstattuple_Approx ( 'pg_catalog.pg_proc':: regclass); -[레코드 1] --------+------- table_len | 573440 스캔 한 | 2 대략 _tuple_count | 2740 대략 _tuple_len | 561210 대략 _tuple_percent | 97.87 dead_tuple_count | 0 dead_tuple_len | 0 dead_tuple_percent | 0 대략적인 | 11996 대략적인 | 2.09
출력 열은에 설명되어 있습니다.테이블 F.24.
wherepgstattuple
항상 전체 테이블 스캔을 수행하고 정확한 살아있는 배트맨 토토 (및 크기)과 여유 공간을 정확하게 반환합니다.pgstattuple_Approx
전체 테이블 스캔을 피하려고 시도하고 정확한 죽은 튜플 통계를 반환하여 살아있는 튜플 및 여유 공간의 수와 크기의 근사치를 반환합니다..
가시성 맵에 따라 가시 튜플 만있는 페이지를 건너 뛰면이 작업을 수행합니다 (페이지에 해당 VM 비트 세트가있는 경우 죽은 튜플이 포함되지 않는 것으로 가정합니다). 이러한 페이지의 경우 여유 공간 맵에서 여유 공간 값을 도출하고 페이지의 나머지 공간이 라이브 튜플에 의해 채택된다고 가정합니다..
건너 뛸 수없는 페이지의 경우 각 튜플을 스캔하고 적절한 카운터에 존재와 크기를 기록하고 페이지의 여유 공간을 추가합니다. 결국, 그것은 스캔 한 페이지 수와 튜플을 기준으로 총 살아있는 배트맨 토토 수를 추정합니다 (진공 청소기는 pg_class.reltuples를 추정하는 것과 같은 방식으로)..
표 F.24. pgstattuple_Approx
출력 열
열 | 타입 | 설명 |
---|---|---|
table_len |
bigint |
바이트의 물리적 관계 길이 (정확한) |
스캔 _percent |
float8 |
테이블 스캔 백분율 |
대략 _tuple_count |
bigint |
살아있는 배트맨 토토 수 (추정) |
대략 _tuple_len |
bigint |
바이트의 살아있는 배트맨 토토의 총 길이 (추정) |
대략 _tuple_percent |
float8 |
살아있는 배트맨 토토의 백분율 |
dead_tuple_count |
bigint |
죽은 튜플 수 (정확한) |
dead_tuple_len |
bigint |
바이트의 죽은 튜플의 총 길이 (정확한) |
dead_tuple_percent |
float8 |
죽은 튜플 비율 |
asto_free_space |
bigint |
바이트의 총 여유 공간 (추정) |
asto_free_percent |
float8 |
여유 공간 비율 |
위의 출력에서 여유 공간 수치는와 일치하지 않을 수 있습니다.pgstattuple
여유 공간 맵이 우리에게 정확한 수치를 제공하지만 바이트에 정확하지는 않기 때문에 정확히 출력..
Tatsuo Ishii, Satoshi Nagayasu 및 Abhijit Menon-Sen
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면