Abfragen von Datenbankobjektgrößen
In diesem Schritt verbinden Sie sich mit der PostgreSQL-Datenbank und fragen die Größen einer Tabelle und ihres Indexes ab. Das Verständnis der Größe Ihrer Datenbankobjekte ist entscheidend für die Leistungsoptimierung und Kapazitätsplanung.
Öffnen Sie zunächst ein Terminal. Um sich als Benutzer postgres mit dem PostgreSQL-Server zu verbinden und auf die Datenbank mydatabase zuzugreifen, führen Sie den folgenden Befehl aus:
sudo -u postgres psql mydatabase
Sie sollten die psql-Eingabeaufforderung (mydatabase=#) sehen, die anzeigt, dass Sie mit der Datenbank mydatabase verbunden sind. Alle nachfolgenden SQL-Befehle in diesem Lab sollten in dieser psql-Shell ausgeführt werden, sofern nicht anders angegeben.
Nun ermitteln wir die Größe von mytable. Wir verwenden die Funktionen pg_size_pretty und pg_relation_size. pg_relation_size gibt die Größe einer Tabelle in Bytes zurück, und pg_size_pretty formatiert sie in ein für Menschen lesbares Format (z. B. KB, MB).
Führen Sie die folgende SQL-Abfrage aus, um die Größe von mytable zu erhalten:
SELECT pg_size_pretty(pg_relation_size('mytable'));
Sie sollten eine Ausgabe ähnlich dieser sehen, die den von den Tabellendaten belegten Speicherplatz anzeigt:
pg_size_pretty
----------------
56 kB
(1 row)
Überprüfen Sie als Nächstes die Größe des Indexes idx_mytable_name, der auf der Spalte name erstellt wurde:
SELECT pg_size_pretty(pg_relation_size('idx_mytable_name'));
Die Ausgabe zeigt den vom Index belegten Speicherplatz an:
pg_size_pretty
----------------
48 kB
(1 row)
Um schließlich die Gesamtgröße der Tabelle einschließlich aller ihrer Indizes zu erhalten, verwenden Sie die Funktion pg_total_relation_size:
SELECT pg_size_pretty(pg_total_relation_size('mytable'));
Diese Ausgabe zeigt die kombinierte Größe der Tabelle und ihres Indexes an:
pg_size_pretty
----------------
176 kB
(1 row)