각 테이블에는 대부분의 데이터가 저장되는 기본 힙 디스크 파일이 있습니다. 테이블에 잠재적으로 넓은 값이 있는 열이 있는 경우 다음과 같은 경우도 있을 수 있습니다.토스트테이블과 관련된 파일. 이 파일은 기본 테이블에 편안하게 들어갈 수 없을 정도로 넓은 값을 저장하는 데 사용됩니다(참조섹션 69.2). 에 유효한 인덱스가 하나 있습니다.토스트테이블(있는 경우). 기본 테이블과 연관된 인덱스가 있을 수도 있습니다. 각 테이블과 인덱스는 별도의 디스크 파일에 저장됩니다. 파일이 1GB를 초과하는 경우 두 개 이상의 파일이 저장될 수 있습니다. 이러한 파일의 명명 규칙은 다음 항목에 설명되어 있습니다.섹션 69.1.
세 가지 방법으로 디스크 공간을 모니터링할 수 있습니다: 다음에 나열된 SQL 함수 사용표 9.84, 다음을 사용하여oid2이름모듈 또는 시스템 카탈로그의 수동 검사를 사용합니다. SQL 함수는 사용하기 가장 쉬우며 일반적으로 권장됩니다. 이 섹션의 나머지 부분에서는 시스템 카탈로그를 검사하여 이를 수행하는 방법을 보여줍니다.
사용 중psql최근에 정리되거나 분석된 데이터베이스에서 쿼리를 실행하여 모든 테이블의 토토 캔 사용량을 확인할 수 있습니다.
SELECT pg_relation_filepath(oid), pg_class에서 relpages WHERE relname = '고객'; pg_relation_filepath | 다시 페이지 -------+------------ 베이스/16384/16806 | 60 (1행)
각 페이지는 일반적으로 8KB입니다. (기억하세요,relpages다음에 의해서만 업데이트됩니다.진공, 분석및 다음과 같은 몇 가지 DDL 명령색인 생성.) 테이블의 토토 캔 파일을 직접 검사하려는 경우 파일 경로 이름이 중요합니다.
사용된 공간을 표시하려면토스트테이블에 대해 다음과 같은 쿼리를 사용하세요.
SELECT relname, relpages
pg_class에서,
(SELECT reltoastrelid
pg_class에서
WHERE relname = '고객') AS ss
어디에서 oid = ss.reltoastrelid OR
oid = (SELECT 인덱스렐리드
pg_index에서
어디 indrelid = ss.reltoastrelid)
relname으로 주문;
이름 | 다시 페이지
-------+------------
pg_toast_16806 | 0
pg_toast_16806_index | 1
색인 크기도 쉽게 표시할 수 있습니다.
SELECT c2.relname, c2.relpages
pg_class c, pg_class c2, pg_index i에서
여기서 c.relname = '고객' AND
c.oid = i.indrelid AND
c2.oid = i.indexrelid
c2.relname으로 주문;
이름 | 다시 페이지
-------+------------
고객_ID_색인덱스 | 26
이 정보를 사용하면 가장 큰 테이블과 색인을 쉽게 찾을 수 있습니다.
SELECT relname, relpages
pg_class에서
ORDER BY relpages DESC;
이름 | 다시 페이지
-------+------------
빅테이블 | 3290
고객 | 3144