查找 PostgreSQL 中表空间的总和

问题描述 投票:0回答:2

我想做的是计算 PostgreSQL 数据库中 2 个表空间的总和。

SELECT pg_size_pretty (pg_tablespace_size ('pg_default') );

通过此查询,我可以找到已使用的空间,但是当我修改它以使用下面的查询查找两个表空间的详细信息时

SELECT pg_size_pretty ( pg_tablespace_size ('poolData')
                       ,pg_tablespace_size ('pool')    );

但它没有给出任何输出。有什么方法可以在单个查询中找到两者,以便我可以计算表空间的总和?

database postgresql database-administration tablespace
2个回答
0
投票

函数

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');

0
投票

为了能够在这种情况下找到 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;

上面的查询单独检索每个表空间的大小,然后计算大小的总和。

© www.soinside.com 2019 - 2024. All rights reserved.