私はMac SierraでPostgres 9.5.1を使用しています。私のテーブルに次のインデックスを作成しましたPostgresインデックスが占有するディスク容量を測定するにはどうすればよいですか?
このインデックスがディスク上でどれくらいのディスクスペースを占めるかを測定するにはどうすればよいですか?別のタイプのインデックスを作成すると、これを訴訟対象のスペースと比較したいと思います。テーブル内のデータのサイズは気にしませんが、インデックスが占有するストレージだけは注意してください。
私はMac SierraでPostgres 9.5.1を使用しています。私のテーブルに次のインデックスを作成しましたPostgresインデックスが占有するディスク容量を測定するにはどうすればよいですか?
このインデックスがディスク上でどれくらいのディスクスペースを占めるかを測定するにはどうすればよいですか?別のタイプのインデックスを作成すると、これを訴訟対象のスペースと比較したいと思います。テーブル内のデータのサイズは気にしませんが、インデックスが占有するストレージだけは注意してください。
あなたはそのため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'));
あなたがここにいくつかの興味深いスクリプトを見つけることができます: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