我需要在 posgreSQL 中查找表的大小。我正在使用以下命令,但它给了我 0 作为输出。你能告诉我怎样才能得到一张桌子的大小吗?
输入:
select pg_relation_size('tableName');
输出:
pg_relation_size
0
(1 row)
我需要在 posgreSQL 中查找表的大小。我正在使用以下命令,但它给了我 0 作为输出。你能告诉我怎样才能得到一张桌子的大小吗?
输入:
select pg_relation_size('tableName');
输出:
pg_relation_size
0
(1 row)
这可能是因为tableName
是一种观点。
例子:
CREATE VIEW dummy AS SELECT 1;
SELECT pg_relation_size('dummy');
结果:
pg_relation_size ------------------ 0 (1 行)
我知道这很古老,但我遇到了同样的问题。这是因为该表是一个分区表,所以从技术上讲,它没有实际大小。要获得所有分区的总大小,请查看这个问题。
或者您可以简单地使用继承目录,例如:
SELECT count(*) AS child_amount, pg_size_pretty(sum(pg_relation_size(inhrelid::regclass))) AS child_size
FROM pg_inherits
WHERE inhparent='tableName'::regclass;