2017-09-27 1 views
0

내가 pgadmin에서이 요청을 수행 할 경우에 생각했던 것보다 훨씬 더 많은 디스크 공간을 취데이터베이스 I 그것이

SELECT table_name, 
pg_size_pretty(pg_relation_size(table_schema || '.' || table_name)::bigint) As Taille_donnees, 
pg_size_pretty(pg_total_relation_size(table_schema || '.' || table_name)::bigint) As Taille_totale, 
pg_size_pretty(pg_indexes_size(table_schema || '.' || table_name)::bigint) As Taille_index 
FROM information_schema.tables 
WHERE table_schema = '***' 
ORDER BY pg_total_relation_size(table_schema || '.' || table_name) DESC 

데이터 사이즈 인덱스 크기 1백36킬로바이트이다 392킬로바이트이며, 전체 크기가 1,216이고 Mb, 어떻게 가능합니까? 나는 테이블을 보았는데 350 라인 밖에 없었습니다. 왜이 테이블이 너무 무겁습니까? 지정된 포크 지정된 테이블 또는 인덱스 ('주', 'FSM', 'VM'또는 'init를')에 의해 사용

+1

https://www.postgresql.org/docs/current/static /sql-vacuum.html – lad2025

+0

"줄이있다"는 것은 무엇을 의미합니까? 무슨 "라인"을 말하는거야? 당신은 아마도 "행"을 언급하고 있습니까? 그렇다면 테이블에는 행만 포함됩니다. 또한 총 관계 크기에는'pg_relation_size()'에 포함되지 않은 TOAST 된 데이터가 포함되어 있으므로 주요 관계 데이터 인 –

+0

https : // www 외부에 저장된 많은 매우 큰 텍스트 값을 테이블에 저장하고 있다는 것을 의미 할 수도 있습니다 .postgresql.org/docs/current/static/functions-admin.html # FUNCTIONS-ADMIN-DBOBJECT –

답변

0

https://www.postgresql.org/docs/current/static/functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT

pg_relation_size 디스크 공간

pg_table_size (regclass 형) 디스크 공간 :

난 당신이 대신 사용하고자 가정 인덱스를 제외하고 (그러나 TOAST 여유 공간지도 및 가시성 지도 포함)

를, 지정된 테이블에서 사용 pg_relation_size는 (모든) 데이터 크기가 표시되지 않기 때문에 - 단지 주요 포크 :

pg_relation_size (관계 regclass 형) pg_relation_size에 대한 속기 (..., '주')이 probalby F를 적용하려고

ormula :

pg_total_relation_size 모든 관련 인덱스를 포함하여 해당 테이블, 에 사용되는 총에 디스크 공간을 테이블이나 토스트 테이블의 OID 또는 이름을 받아, 반환합니다. 이 함수는 pg_table_size + pg_indexes_size와 같습니다.

그러나 잘못 기능 사용 pg_total_relation_size 워드 에게 관계를 가지고 있으며, 아직 pg_table_size하지 pg_relation_size의 합이므로? ..