查找所有数据库大小的命令是什么?

我能够通过使用以下命令找到特定数据库的大小:

select pg_database_size('databaseName');

当前回答

SELECT pg_size_pretty(pg_database_size('name of database'));

会给你一个特定数据库的总大小,但我不认为你可以做所有的数据库在一个服务器。

然而你可以这样做…

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;
$$

其他回答

启动pgAdmin,连接到服务器,单击数据库名称,并选择统计信息选项卡。您将在列表的底部看到数据库的大小。

然后,如果单击另一个数据库,它将停留在statistics选项卡上,因此您可以轻松地查看许多数据库大小,而不需要太多工作。如果您打开表列表,它将显示所有表及其大小。

是的,在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;
du -k /var/lib/postgresql/ |sort -n |tail
SELECT pg_size_pretty(pg_database_size('name of database'));

会给你一个特定数据库的总大小,但我不认为你可以做所有的数据库在一个服务器。

然而你可以这样做…

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;
$$
-- Database Size
SELECT pg_size_pretty(pg_database_size('Database Name'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('table_name'));