如何查找 所有 数据库的大小?
我可以使用以下命令查找特定数据库的大小:
select pg_database_size('databaseName');
如何查找 所有 数据库的大小?
我可以使用以下命令查找特定数据库的大小:
select pg_database_size('databaseName');
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()函数。
pg_database_size()
函数返回的值包括索引的大小。 - user330315\l+
完全相同。但输出格式更易读(列数更少)。这是可写性和可读性之间的权衡。 - Skippy le Grand Gourou-- Database Size
SELECT pg_size_pretty(pg_database_size('Database Name'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('table_name'));
显示数据库大小:
\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
。
\d+ *
有效,普通的\d+
返回了“未找到任何关系”。 - phil pirozhkov\c dbname
),然后执行 \d+
。 - chappjc是的,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;
SELECT database_name, pg_size_pretty(size) from (SELECT pg_database.datname as "database_name", pg_database_size(pg_database.datname) AS size FROM pg_database ORDER by size DESC) as ordered;
- MichaelSELECT pg_database.datname AS "数据库名称", pg_size_pretty(pg_database_size(pg_database.datname)) AS "大小" FROM pg_database ORDER BY (pg_database_size(pg_database.datname)) DESC;
。 - M-DahabSELECT 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;
$$
pg_database
进行单个查询,而不是使用这种丑陋的pl/pgsql呢? - MozenRath注意:用户无法连接到的数据库被视为无限大小进行排序。
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
该页面还包含查找您最大关系和最大表格大小的片段。
打开pgAdmin,连接到服务器,在数据库名称上单击,然后选择统计选项卡。您将在列表底部看到数据库的大小。
然后如果您点击其他数据库,它将保持在统计选项卡上,因此您可以轻松地查看许多数据库大小,无需太多努力。如果您打开表格列表,它会显示所有表格及其大小。
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;
du -k /var/lib/postgresql/ | sort -n | tail
du -k /var/lib/pgsql/ | sort -n | tail
- Feriman
select pg_database_size('databaseName')/1024/1024;
可以得到更易读的兆字节。 - Markusselect pg_size_pretty(pg_database_size('databaseName'));
可以给你更好的人性化大小,无论大小是多少。(当你在TB时,用MB阅读会有点困难) - Stephen