지원되는 버전:현재 (18) / 17 / 16 / 15 / 14 / 13
개발 버전:개발
지원되지 않는 버전:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

F.30. 롤 토토

롤 토토모듈은 튜플 수준 통계를 얻기 위한 다양한 기능을 제공합니다.

F.30.1. 기능

롤 토토(regclass)가 레코드를 반환합니다.

롤 토토관계의 물리적 길이, 백분율을 반환합니다."죽음"튜플 및 기타 정보. 이는 사용자가 진공이 필요한지 여부를 결정하는 데 도움이 될 수 있습니다. 인수는 대상 관계의 이름(선택적으로 스키마 한정) 또는 OID입니다. 예를 들어:

test= SELECT * FROM 롤 토토('pg_catalog.pg_proc');
-[ 기록 1 ]------+-------
테이블렌 | 458752
tuple_count | 1470
tuple_len | 438896
tuple_percent | 95.67
dead_tuple_count | 11
dead_tuple_len | 3157
dead_tuple_percent | 0.69
여유 공간 | 8932
free_percent | 1.95

출력 열은 다음에 설명되어 있습니다.표 F-23.

표 F-23.롤 토토출력 열

칼럼 유형 설명
table_len bigint 물리적 관계 길이(바이트)
tuple_count 비긴트 라이브 튜플 수
tuple_len bigint 활성 튜플의 총 길이(바이트)
tuple_percent float8 라이브 튜플의 백분율
dead_tuple_count 비긴트 죽은 튜플 수
dead_tuple_len 비긴트 데드 튜플의 총 길이(바이트)
dead_tuple_percent float8 죽은 튜플의 백분율
free_space 비진트 총 여유 공간(바이트)
free_percent float8 여유 공간 비율

참고:table_len항상 다음의 합보다 큽니다tuple_len, dead_tuple_len그리고free_space. 그 차이는 고정된 페이지 오버헤드, 튜플에 대한 포인터의 페이지별 테이블, 튜플이 올바르게 정렬되도록 보장하는 패딩으로 설명됩니다.

롤 토토관계에 대한 읽기 잠금만 획득합니다. 따라서 결과는 즉각적인 스냅샷을 반영하지 않습니다. 동시 업데이트가 영향을 미칩니다.

롤 토토튜플이 다음과 같다고 판단함"죽음"ifHeapTupleSatisfiesDirty거짓을 반환합니다.

롤 토토(text)가 레코드를 반환함

이것은 다음과 같습니다롤 토토(regclass), 단, 대상 관계가 TEXT로 지정된 경우는 제외됩니다. 이 기능은 이전 버전과의 호환성 때문에 지금까지 유지되었으며 향후 릴리스에서는 더 이상 사용되지 않을 예정입니다.

pgstatindex(regclass)가 레코드를 반환함

pgstatindexB-트리 인덱스에 대한 정보를 보여주는 레코드를 반환합니다. 예를 들어:

test= SELECT * FROM pgstatindex('pg_cast_oid_index');
-[ 기록 1 ]------+------
버전 | 2
트리 레벨 | 0
인덱스_크기 | 16384
루트_블록_노 | 1
내부_페이지 | 0
leaf_pages | 1
빈_페이지 | 0
삭제된_페이지 | 0
평균_잎_밀도 | 54.27
잎_조각화 | 0

출력 열은 다음과 같습니다:

칼럼 유형 설명
버전 정수 B-트리 버전 번호
tree_level 정수 루트 페이지의 트리 수준
index_size 비긴트 총 색인 크기(바이트)
root_block_no 비긴트 루트 페이지 위치(없으면 0)
internal_pages 비긴트 개수"내부"(상위) 페이지
leaf_pages 비긴트 리프 페이지 수
empty_pages 비긴트 빈 페이지 수
삭제_페이지 비긴트 삭제된 페이지 수
avg_leaf_density float8 리프 페이지의 평균 밀도
leaf_fragmentation float8 리프 페이지 조각화

보고된 내용index_size일반적으로 다음에서 설명하는 것보다 하나 더 많은 페이지에 해당합니다.internal_pages + leaf_pages +empty_pages + delete_pages, 인덱스의 메타페이지도 포함되어 있기 때문입니다.

와 마찬가지로롤 토토, 결과는 페이지별로 누적되며 전체 색인의 즉각적인 스냅샷을 나타낼 것으로 예상해서는 안 됩니다.

pgstatindex(text)가 레코드를 반환함

이것은 다음과 같습니다pgstatindex(regclass), 단, 대상 인덱스는 TEXT로 지정됩니다. 이 기능은 이전 버전과의 호환성 때문에 지금까지 유지되었으며 향후 릴리스에서는 더 이상 사용되지 않을 예정입니다.

pgstatginindex(regclass)가 레코드를 반환함

pgstatginindexGIN 색인에 대한 정보를 보여주는 레코드를 반환합니다. 예를 들어:

test= SELECT * FROM pgstatginindex('test_gin_index');
-[ 기록 1 ]--+--
버전 | 1
보류 중인_페이지 | 0
보류_튜플 | 0

출력 열은 다음과 같습니다:

칼럼 유형 설명
버전 정수 GIN 버전 번호
pending_pages 정수 보류 목록의 페이지 수
pending_tuples bigint 보류 목록에 있는 튜플 수
pg_relpages(regclass)가 bigint를 반환함

pg_relpages관계의 페이지 수를 반환합니다.

pg_relpages(text)는 bigint를 반환합니다.

이것은 다음과 같습니다pg_relpages(regclass), 단, 대상 관계가 TEXT로 지정된 경우는 제외됩니다. 이 기능은 이전 버전과의 호환성 때문에 지금까지 유지되었으며 향후 릴리스에서는 더 이상 사용되지 않을 예정입니다.

롤 토토_about(regclass)가 레코드를 반환합니다.

롤 토토_about더 빠른 대안입니다.롤 토토대략적인 결과를 반환합니다. 인수는 대상 관계의 이름 또는 OID입니다. 예를 들어:

테스트= SELECT * FROM 롤 토토_about('pg_catalog.pg_proc'::regclass);
-[ 기록 1 ]---------+-------
테이블렌 | 573440
스캔_퍼센트 | 2
대략_튜플_카운트 | 2740
대략_튜플_렌 | 561210
대략_튜플_퍼센트 | 97.87
dead_tuple_count | 0
dead_tuple_len | 0
dead_tuple_percent | 0
대략_여유_공간 | 11996
약_무료_퍼센트 | 2.09

출력 열은 다음에 설명되어 있습니다.표 F-24.

반면에롤 토토항상 전체 테이블 스캔을 수행하고 라이브 및 데드 튜플(및 해당 크기)과 여유 공간의 정확한 수를 반환합니다.롤 토토_about전체 테이블 스캔을 피하려고 시도하고 라이브 튜플 및 여유 공간의 대략적인 수와 크기와 함께 정확한 데드 튜플 통계를 반환합니다.

가시성 맵에 따라 보이는 튜플만 있는 페이지를 건너뛰어 이를 수행합니다(페이지에 해당 VM 비트가 설정된 경우 데드 튜플이 없는 것으로 가정됩니다). 이러한 페이지의 경우 여유 공간 맵에서 여유 공간 값을 파생시키고 페이지의 나머지 공간은 라이브 튜플이 차지한다고 가정합니다.

건너뛸 수 없는 페이지의 경우 각 튜플을 검색하여 해당 카운터에 존재 여부와 크기를 기록하고 페이지의 여유 공간을 합산합니다. 마지막에는 스캔된 페이지 및 튜플 수를 기반으로 총 활성 튜플 수를 추정합니다(VACUUM이 pg_class.reltuples를 추정하는 것과 같은 방식).

표 F-24.롤 토토_about출력 열

칼럼 유형 설명
table_len 비긴트 바이트 단위의 물리적 관계 길이(정확함)
scanned_percent float8 스캔된 테이블의 비율
about_tuple_count 비긴트 라이브 튜플 수(예상)
about_tuple_len 비긴트 활성 튜플의 총 길이(바이트)(예상)
about_tuple_percent float8 라이브 튜플의 백분율
dead_tuple_count bigint 죽은 튜플 수(정확히)
dead_tuple_len bigint 데드 튜플의 총 길이(바이트)(정확함)
dead_tuple_percent float8 죽은 튜플의 백분율
about_free_space bigint 바이트 단위의 총 여유 공간(예상)
about_free_percent float8 여유 공간 비율

위 출력에서 ​​여유 공간 수치는 다음과 일치하지 않을 수 있습니다.롤 토토정확하게 출력됩니다. 왜냐하면 여유 공간 맵은 정확한 수치를 제공하지만 바이트 단위까지 정확하다고 보장할 수는 없기 때문입니다.

F.30.2. 저자

이시이 타츠오, 나가야스 사토시, 아히짓 메논-센