Answers:
这是假设物化视图都relpages >= 8
在pg_class
,这并不一定如此。它实际上可以是空的-尚未填充,由表示pg_class.relispopulated = FALSE
。在这种情况下,相应的磁盘文件的大小为零。
请尝试:
SELECT relname AS objectname
, relkind AS objecttype
, reltuples AS entries
, pg_size_pretty(pg_table_size(oid)) AS size -- depending - see below
FROM pg_class
WHERE relkind IN ('r', 'i', 'm')
ORDER BY pg_table_size(oid) DESC;
凡可用的类型有:
r
=普通表,
i
=索引,
S
=序列,
v
=视图,
m
=物化视图,
c
=复合类型,
t
= TOAST表,
f
=外部表
使用数据库对象大小函数之一,而不要构建自己的函数。请注意,可以用不同的方式定义“表的大小”。细节:
ORDER BY
。