Das setzt voraus , dass materialisierte Ansichten haben relpages >= 8
in pg_class
, was nicht der Fall sein muss. Es kann tatsächlich leer sein - noch nicht belegt, angezeigt durch pg_class.relispopulated = FALSE
. Die entsprechende Plattendatei hat in diesem Fall eine Größe von Null .
Versuchen Sie stattdessen:
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;
Wo die verfügbaren Typen sind :
r
= gewöhnliche Tabelle,
i
= Index,
S
= Sequenz,
v
= Ansicht,
m
= materialisierte Ansicht,
c
= zusammengesetzter Typ,
t
= TOAST-Tabelle,
f
= fremde Tabelle
Verwenden Sie eine der Funktionen für die Datenbankobjektgröße, anstatt Ihre eigene zu erstellen. Beachten Sie, dass die "Größe einer Tabelle" auf verschiedene Arten definiert werden kann. Einzelheiten:
ORDER BY
.