web-dev-qa-db-ja.com

Postgres DBサイズコマンド

Postgresですべてのデータベースサイズを見つけるコマンドはありますか?

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

select pg_database_size('databaseName');
267
Beautiful Mind

そして、...クエリ全体を入力したくない場合は...入力することもできます。

\l+ <database_name>

データベースのサイズなど、データベースに関する詳細が表示されます。

そして...すべてのデータベースのサイズを取得する。

あなたはただタイプすることができます...

\l+

あなたはpostgresqlコマンドに入る必要があるかもしれませんこれらのpostgresqlヘルパーコマンドで問い合わせるために。

他のpostgresqlヘルパーコマンドを入力して確認してください。

\?

postgresqlコマンドプロンプトで。

305
Ashish

あなたが接続できる全てのデータベースの名前は "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()関数をカットすることができます。

-- Database Size
SELECT pg_size_pretty(pg_database_size('Database Name'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('table_name'));

答えに基づいて ここ by @Hendy Irawan

データベースサイズを表示します。

\l+

例えば.

=> \l+
 berbatik_prd_commerce    | berbatik_prd     | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 19 MB   | pg_default | 
 berbatik_stg_commerce    | berbatik_stg     | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 8633 kB | pg_default | 
 bursasajadah_prd         | bursasajadah_prd | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 1122 MB | pg_default | 

テーブルサイズを表示:

\d+

例えば.

=> \d+
 public | tuneeca_prd | table | Tomcat | 8192 bytes | 
 public | tuneeca_stg | table | Tomcat | 1464 kB    | 

psqlでのみ動作します。

66
owyongsk

はい、Postgresにデータベースのサイズを調べるコマンドがあります。それは次のとおりです。

SELECT pg_database.datname as "database_name", pg_size_pretty(pg_database_size(pg_database.datname)) AS size_in_mb FROM pg_database ORDER by size_in_mb DESC;
23
Anoop Sharma

SELECT pg_size_pretty(pg_database_size( 'データベースの名前'));

特定のデータベースの合計サイズがわかりますが、サーバー内のすべてのデータベースを処理できるとは限りません。

しかしあなたはこれを行うことができます...

DO
$$
DECLARE
r   RECORD;
db_size TEXT;
BEGIN
FOR r in
SELECT datname FROM pg_database
WHERE datistemplate = false
LOOP
db_size:= (SELECT pg_size_pretty(pg_database_size(r.datname)));

RAISE NOTICE 'Database:% , Size:%', r.datname , db_size;

END LOOP;
END;
$$
12
Shaun McCready

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

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

10
GollyJer

PgAdminを起動してサーバーに接続し、データベース名をクリックして統計タブを選択します。リストの下部にデータベースのサイズが表示されます。

別のデータベースをクリックしても、統計タブに表示されたままなので、多くのデータベースサイズを簡単に確認できます。テーブルリストを開くと、すべてのテーブルとそのサイズが表示されます。

3
SPRBRN

以下のクエリを使用して、PostgreSQLの全データベースのサイズを見つけることができます。

このブログからの参照です。

SELECT 
    datname AS DatabaseName
    ,pg_catalog.pg_get_userbyid(datdba) AS OwnerName
    ,CASE 
        WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
        THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(datname))
        ELSE 'No Access For You'
    END AS DatabaseSize
FROM pg_catalog.pg_database
ORDER BY 
    CASE 
        WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
        THEN pg_catalog.pg_database_size(datname)
        ELSE NULL
    END DESC;
2
Anvesh
du -k /var/lib/postgresql/ |sort -n |tail
1
Jon Carnes