1

我需要在 posgreSQL 中查找表的大小。我正在使用以下命令,但它给了我 0 作为输出。你能告诉我怎样才能得到一张桌子的大小吗?

输入:

select pg_relation_size('tableName');

输出:

pg_relation_size 

  0

(1 row)
4

2 回答 2

1

这可能是因为tableName是一种观点。

例子:

CREATE VIEW dummy AS SELECT 1;
SELECT pg_relation_size('dummy');

结果:

pg_relation_size
------------------
                0
(1 行)

于 2013-09-24T09:37:17.333 回答
0

我知道这很古老,但我遇到了同样的问题。这是因为该表是一个分区表,所以从技术上讲,它没有实际大小。要获得所有分区的总大小,请查看这个问题

或者您可以简单地使用继承目录,例如:

SELECT count(*) AS child_amount, pg_size_pretty(sum(pg_relation_size(inhrelid::regclass))) AS child_size
FROM pg_inherits 
WHERE inhparent='tableName'::regclass;
于 2021-08-30T08:37:35.877 回答