-
查询单个表的磁盘使用量:
SELECT relname, pg_size_pretty ( pg_total_relation_size ( relid ) ) AS total_size FROM pg_catalog.pg_statio_user_tables;
-
查询所有表的总磁盘使用量:
SELECT pg_size_pretty ( SUM ( pg_total_relation_size ( relid ) ) ) AS total_size FROM pg_catalog.pg_statio_user_tables;
-
查询数据库的总磁盘使用量(包括索引):
SELECT pg_size_pretty ( pg_database_size ( 'your_database_name' ) ) AS db_size;
其中,pg_total_relation_size
函数返回一个表的总大小,包括表本身和与之相关的所有索引。pg_statio_user_tables
视图提供了用户表的磁盘使用信息。
如果你想要查询结果以GB为单位,可以对上述查询结果进行一些数学运算,例如:
SELECT
relname,
( pg_total_relation_size ( relid ) / ( 1024 * 1024 * 1024 ) ) :: NUMERIC AS size_gb
FROM
pg_catalog.pg_statio_user_tables;
这里,我们将字节转换为GB,并且使用了::numeric
来确保结果以数值形式返回,而不是自动转换为科学计数法。
请记得将 'your_database_name'
替换为你实际想要查询的数据库名称。如果你需要查询所有数据库的总大小,可以省略对特定数据库的引用,或者使用一个查询所有数据库的查询。