Ric*_*ard 16 postgresql database-size materialized-view disk-space
我知道如何检查 Postgres 中索引和表的大小(我使用的是 9.4 版):
SELECT
relname AS objectname,
relkind AS objecttype,
reltuples AS "#entries", pg_size_pretty(relpages::bigint*8*1024) AS size
FROM pg_class
WHERE relpages >= 8
ORDER BY relpages DESC;
Run Code Online (Sandbox Code Playgroud)
但这并没有显示物化视图。如何查看它们占用了多少磁盘空间?
Erw*_*ter 26
这是假设物化视图具有relpages >= 8in 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;
Run Code Online (Sandbox Code Playgroud)
凡可用的类型有:
r=普通表,
i=索引,
S=序列,
v=视图,
m=物化视图,
c=复合类型,
t=TOAST表,
f=外部表
使用数据库对象大小函数之一,而不是构建自己的函数。请注意,“表的大小”可以用不同的方式定义。细节:
| 归档时间: |
|
| 查看次数: |
8246 次 |
| 最近记录: |