428

すべてのデータベースのサイズを確認するコマンドは何ですか?

次のコマンドを使用して、特定のデータベースのサイズを見つけることができます。

select pg_database_size('databaseName');
4

10 に答える 10

495

次のpsql メタコマンドを入力して、指定したデータベースのサイズなどの詳細を取得できます。

\l+ <database_name>

そして、すべてのデータベース (接続できる) のサイズを取得するには:

\l+
于 2014-06-02T08:38:06.243 に答える
261

「pg_datbase」システムテーブルから、接続できるすべてのデータベースの名前を取得できます。以下のように、関数を名前に適用するだけです。

select t1.datname AS db_name,  
       pg_size_pretty(pg_database_size(t1.datname)) as db_size
from pg_database t1
order by pg_database_size(t1.datname) desc;

出力を人間ではなくマシンが消費することを意図している場合は、pg_size_pretty() 関数をカットできます。

于 2013-09-20T00:39:38.983 に答える
196
-- Database Size
SELECT pg_size_pretty(pg_database_size('Database Name'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('table_name'));
于 2013-09-20T06:55:59.383 に答える
11

PostgreSQL wikiから。


注:ユーザーが接続できないデータベースは、無限のサイズであるかのように並べ替えられます。

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

このページには、最大のリレーションと最大のテーブルのサイズを見つけるためのスニペットもあります。

于 2015-04-07T03:03:57.230 に答える
1
du -k /var/lib/postgresql/ |sort -n |tail
于 2018-05-16T17:23:11.053 に答える