이 장에서는 디스크 사용량을 사설 토토하는 방법에 대해 설명합니다.PostgreSQL데이터베이스 시스템. ~ 안에 현재 릴리스에서는 데이터베이스 관리자가 온디스크 스토리지 레이아웃에 대한 많은 제어권을 갖고 있으므로 이 장은 대부분 유익하며 관리 방법에 대한 몇 가지 아이디어를 제공할 수 있습니다. 운영 체제 도구를 사용한 디스크 사용량.
각 테이블에는 대부분의 데이터가 저장되는 기본 힙 디스크 파일이 있습니다. 데이터가 저장됩니다. 긴 열 값을 저장하려면 다음도 있습니다.토스트다음과 연관된 파일 테이블의 OID를 기반으로 이름이 지정된 테이블(실제로는pg_class.relfilenode), 및에 대한 색인토스트테이블. 또한 기본 테이블과 연결된 인덱스여야 합니다.
다음 세 곳에서 디스크 공간을 모니터링할 수 있습니다.psql사용 중진공정보, 출처psql다음 도구 사용기여/dbsize, 명령줄에서 다음을 사용하여 도구contrib/oid2name. 사용psql최근에 진공청소기를 청소했거나 데이터베이스를 분석하면 쿼리를 실행하여 디스크 사용량을 확인할 수 있습니다. 모든 테이블 중:
선택 relfilenode, pg_class에서 relpages WHERE relname = '고객';
relfilenode | 다시 페이지
-----------+----------
16806 | 60
(1행)
각 페이지는 일반적으로 8KB입니다. (기억하다,relpages다음에 의해서만 업데이트됩니다.진공그리고분석.)
사용된 공간을 표시하려면토스트테이블에 대해 다음과 같은 쿼리를 사용하세요. 다음으로 대체relfilenode힙 수(다음에 의해 결정됨) 위 쿼리):
SELECT relname, relpages
pg_class에서
WHERE relname = 'pg_toast_16806' OR relname = 'pg_toast_16806_index'
relname으로 주문;
이름 | 다시 페이지
-------+------------
pg_toast_16806 | 0
pg_toast_16806_index | 1
색인 크기도 쉽게 표시할 수 있습니다.
SELECT c2.relname, c2.relpages
pg_class c, pg_class c2, pg_index i에서
WHERE c.relname = '고객'
AND c.oid = i.indrelid
AND c2.oid = i.indexrelid
c2.relname으로 주문;
이름 | 다시 페이지
-------+------------
고객_ID_색인덱스 | 26
다음을 사용하여 가장 큰 테이블과 색인을 찾는 것은 쉽습니다. 이 정보:
SELECT relname, relpages FROM pg_class ORDER BY relpages DESC;
이름 | 다시 페이지
-------+------------
빅테이블 | 3290
고객 | 3144
기여/dbsize함수 로드 테이블의 크기를 찾을 수 있는 데이터베이스에 또는 내부의 데이터베이스psql필요 없이진공또는분석.
또한 다음을 사용할 수 있습니다.contrib/oid2name디사설 토토 사용량을 표시합니다. 보다README.oid2name예를 들어 해당 디렉토리에 있습니다. 각 디사설 토토 사용량을 보여주는 사설 토토립트가 포함되어 있습니다. 데이터 베이스.