2016-11-22 2 views
1

私はMac SierraでPostgres 9.5.1を使用しています。私のテーブルに次のインデックスを作成しましたPostgresインデックスが占有するディスク容量を測定するにはどうすればよいですか?

このインデックスがディスク上でどれくらいのディスクスペースを占めるかを測定するにはどうすればよいですか?別のタイプのインデックスを作成すると、これを訴訟対象のスペースと比較したいと思います。テーブル内のデータのサイズは気にしませんが、インデックスが占有するストレージだけは注意してください。

答えて

2

あなたはそのためpg_relation_size()を使用することができ、例えば:

select pg_relation_size('my_object_times_name_gin_trgm_idx'); 

サイズはバイト単位です。 「人間が読める」形式で書式設定したい場合は、pg_size_pretty()

select pg_size_pretty(pg_relation_size('my_object_times_name_gin_trgm_idx')); 
0

あなたがここにいくつかの興味深いスクリプトを見つけることができます:Disk Usage

SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) AS Owner, 
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') 
     THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname)) 
     ELSE 'No Access' 
    END AS SIZE 
FROM pg_catalog.pg_database d 
    ORDER BY 
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') 
     THEN pg_catalog.pg_database_size(d.datname) 
     ELSE NULL 
    END DESC -- nulls first 
    LIMIT 20 
関連する問題