postgresql 查看所有表大小
时间: 2023-09-07 07:15:36 浏览: 95
要查看 PostgreSQL 数据库中所有表的大小,可以使用以下 SQL 查询语句:
```
SELECT
table_name,
pg_size_pretty(table_size) AS table_size
FROM (
SELECT
*, pg_total_relation_size(quote_ident(table_schema) || '.' || quote_ident(table_name)) AS table_size
FROM
information_schema.tables
) AS table_sizes
WHERE
table_type = 'BASE TABLE'
ORDER BY
table_size DESC;
```
这将返回一个表格,其中列出了每个表的名称和其大小,按大小降序排列。
相关问题
postgresql查询所有数据表大小
要查询PostgreSQL数据库中所有数据表的大小,可以使用如下的SQL语句:
```sql
SELECT table_name, pg_size_pretty(pg_total_relation_size(table_name)) AS total_size
FROM information_schema.tables
WHERE table_schema = 'public'
ORDER BY total_size DESC;
```
在这个查询语句中,我们使用了`information_schema.tables`系统视图来获取数据库中所有表的信息。其中,`table_schema = 'public'`条件用于筛选出公共模式(public schema)下的表。
对于每个表,我们使用了内置函数`pg_total_relation_size(table_name)`来计算表的总大小,并使用`pg_size_pretty`函数将大小转换为人类可读的格式。
最后,我们按照表的总大小降序排列结果,并返回表名和总大小两列。
执行以上查询语句后,你将会得到一个包含所有数据表和对应大小的结果集。
PostgreSQL查看数据库模式大小
可以使用以下命令查看PostgreSQL数据库中每个模式的大小:
```
SELECT nspname AS schemaname, pg_size_pretty(sum(pg_total_relation_size(nspname || '.' || relname))) AS total_size
FROM pg_catalog.pg_class C
LEFT JOIN pg_catalog.pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
GROUP BY nspname
ORDER BY total_size DESC;
```
该命令将返回每个模式的名称和它们的总大小。如果模式的总大小非常大,可能需要一些时间来计算。
阅读全文