我想做的是计算 PostgreSQL 数据库中 2 个表空间的总和。
SELECT pg_size_pretty (pg_tablespace_size ('pg_default') );
通过此查询,我可以找到已使用的空间,但是当我修改它以使用下面的查询查找两个表空间的详细信息时
SELECT pg_size_pretty ( pg_tablespace_size ('poolData')
,pg_tablespace_size ('pool') );
但它没有给出任何输出。有什么方法可以在单个查询中找到两者,以便我可以计算表空间的总和?
pg_tablespace_size()
返回类型 bigint
,因此您可以使用常规 +
添加它们。
SELECT pg_size_pretty( pg_tablespace_size('poolData')
+pg_tablespace_size ('pool') );
您还可以
sum()
您感兴趣的表空间的大小,从pg_tablespace
获取它们。
select pg_size_pretty(sum(spcname)) from pg_tablespace
where spcname in ('poolData','pool');
为了能够在这种情况下找到 postgresql 中的表空间总和,我建议您使用以下查询:
SELECT
pg_tablespace_size('pg_default') AS pg_default_size,
pg_tablespace_size('poolData') AS poolData_size,
pg_tablespace_size('pool') AS pool_size,
pg_size_pretty(pg_tablespace_size('pg_default') + pg_tablespace_size('poolData') + pg_tablespace_size('pool')) AS total_size;
上面的查询单独检索每个表空间的大小,然后计算大小的总和。