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。