Wie kann ich alle Tabellen einer PostgreSQL-Datenbank auflisten und nach Größe sortieren ?
sql
postgresql
postgresql-9.3
nichts Besonderes hier
quelle
quelle
\d+
werden Ihnen diese Informationen in einem einfachen Code angezeigt , obwohl sie unsortiert sind.Antworten:
Dies zeigt Ihnen die Größe aller Tabellen im Schema,
public
wenn Sie mehrere Schemas haben, die Sie möglicherweise verwenden möchten:SQLFiddle-Beispiel: http://sqlfiddle.com/#!15/13157/3
Liste aller Objektgrößenfunktionen im Handbuch .
quelle
select table_schema, table_name, pg_relation_size(table_schema||'.'||table_name) from information_schema.tables order by 3;
Danke für die Hilfe!select * from information_schema.tables where table_schema = 'public';
liefert null Zeilen, obwohl\dn
das Schema public angezeigt wird. Vielleicht hat eine Änderung in 9.5 dies verursacht?Dies zeigt Ihnen den Schemanamen, den Tabellennamen, die hübsche Größe und die Größe (für die Sortierung erforderlich).
Ich erstelle dies basierend auf den Lösungen aus dieser Liste von Schemas mit Größen (relativ und absolut) in einer PostgreSQL-Datenbank
quelle
Dies wird klarer.
pg_size_pretty(<numeric_value>)
- Konvertiert die Anzahl der Bytes in ein lesbares Format.pg_database_size(<db_name>)
- Ruft die Datenbankgröße in Bytes ab .pg_total_relation_size(<relation_name>)
- Ruft die Gesamtgröße der Tabelle und ihren Index in Bytes ab .pg_relation_size(<relation_name>)
- Ruft die Größe der Beziehung (Tabelle / Index) in Bytes ab .pg_index_size(<relation_name>)
- Ruft die Indexgröße der Beziehung in Bytes ab .current_database()
- Ruft die aktuell verwendete Datenbank ab, für die diese Abfrage ausgeführt wird.Abfrage:
Ergebnis:
Das humanisierte Format repräsentiert in
bytes
,kB
,MB
,GB
, undTB
.bytes
zukB
- beginnt von10240 bytes
bytes
zuMB
- beginnt von10485248 bytes
=10239.5 kB
~10 MB
bytes
zuGB
- beginnt von10736893952 bytes
=10239.5 MB
~10 BG
bytes
zuTB
- beginnt von10994579406848 bytes
=10239.5 GB
~10 TB
Alle Einheitenumrechnungen beginnen ab
10 + <unit>
.Als Referenz - Offizielle Dokumentation von Postgres
quelle
von hier genommen https://wiki-bsse.ethz.ch/display/ITDOC/Check+size+of+tables+and+objects+in+PostgreSQL+database
quelle
Eine andere Alternative
quelle
Ich musste herausfinden, welche Tabellen den meisten Platz beanspruchen.
Basierend auf anderen Antworten habe ich diese Abfrage verwendet:
Ich erhalte folgendes Ergebnis:
Ich hätte eine größere SSD kaufen sollen.
quelle
quelle