🧚 Hör mal! Beekeeper Studio ist eine schnelle, moderne Open-Source-Datenbank-GUI Download
23. September 2025 Von Matthew Rathbone

Seit ich mit Datenbanken arbeite, muss ich immer wieder herausfinden, wie groß eine PostgreSQL-Datenbank ist. Ob für die Kapazitätsplanung, um das Wachstum im Blick zu behalten, oder einfach aus Neugier: Zu wissen, wie man die Datenbankgröße in PostgreSQL prüft, ist unglaublich praktisch.

Eine Frage, die ich oft höre: „Wie prüft man die Größe einer PostgreSQL-Datenbank?“ Tja, Freunde, das ist nicht so kompliziert, wie du vielleicht denkst. Es braucht nur ein paar einfache SQL-Abfragen, die jeder mit SQL-Grundkenntnissen ausführen kann. Diese Abfragen lesen Informationen aus den Systemkatalogen von PostgreSQL und liefern uns genaue Messwerte zu unseren Daten.

Am Ende dieser Anleitung weißt du genau, wie du die Größe deiner eigenen PostgreSQL-Datenbanken misst. Wenn du deine Datenbankgrößen neben diesen Abfragen auch visuell im Blick behalten willst, bietet dir der PostgreSQL-Client von Beekeeper Studio eine intuitive Oberfläche für die Datenbankverwaltung. Also los, schauen wir uns diese nützlichen Befehle gemeinsam an!

Die Größe von PostgreSQL-Datenbanken verstehen

Wenn ich mit PostgreSQL arbeite, prüfe ich als Erstes die Größe meiner Datenbank. Dabei geht es nicht nur um Speicherplatz: Die Datenbankgröße gibt dir Einblicke in die Performance und hilft dir, zukünftiges Wachstum zu planen.

In PostgreSQL setzt sich die Gesamtgröße aus zwei Hauptkomponenten zusammen: den Basisdaten und den Indizes. Zu den Basisdaten gehören alle deine Tabellen mit ihren Zeilen, während Indizes spezielle Nachschlagestrukturen sind, die mit deinen Tabellen verknüpft sind und den Datenabruf beschleunigen.

Hier ein einfaches Beispiel, wie du die Gesamtgröße deiner Datenbank in PostgreSQL prüfen kannst:

SELECT pg_size_pretty(pg_database_size('your_database_name'));

Dieser Befehl gibt die Größe von ‚your_database_name‘ in einem gut lesbaren Format zurück. Ersetze ‚your_database_name‘ durch den Namen deiner tatsächlichen Datenbank.

Aber was, wenn du es genauer wissen willst? Wenn du sehen möchtest, wie viel Platz jede Tabelle oder jeder Index belegt? Genau dafür ist dieses Skript praktisch:

SELECT
   relname AS "Table",
   pg_size_pretty(pg_total_relation_size(relid)) As "Size"
FROM
   pg_catalog.pg_statio_user_tables
ORDER BY
   pg_total_relation_size(relid) DESC;

Diese SQL-Anweisung liefert eine nach Größe sortierte Liste aller Benutzertabellen, inklusive Basisdaten und Indizes.

Sei aber vorsichtig bei der Interpretation dieser Ergebnisse! Anfänger denken oft, dass kleinere Tabellen sofort Speicherplatz freigeben. Tatsächlich nutzt PostgreSQL MVCC (Multi-Version Concurrency Control), wodurch der Speicherverbrauch durch die Transaktionsverarbeitung mit der Zeit schwanken kann. Das heißt: Selbst nachdem du Daten aus einer Tabelle gelöscht hast, wird der Speicherplatz womöglich nicht sofort freigegeben.

Denk also daran: Die Größe deiner PostgreSQL-Datenbank im Auge zu behalten, ist nicht nur Speicherverwaltung. Es geht auch darum, deine Daten zu verstehen, Wachstum zu planen und optimale Performance sicherzustellen. Prüf regelmäßig die Größe deiner Datenbank, ihrer Tabellen und Indizes – diese Gewohnheit hilft dir enorm, eine gesunde und effiziente Datenbank zu pflegen!

Voraussetzungen zum Prüfen der Datenbankgröße in PostgreSQL

Bevor wir uns ansehen, wie du die Datenbankgröße in PostgreSQL prüfst, stellen wir sicher, dass ein paar Grundlagen erfüllt sind. Mit den richtigen Voraussetzungen läuft alles reibungsloser und effizienter.

Zunächst brauchst du Zugriff auf eine laufende PostgreSQL-Datenbank. Klingt selbstverständlich, ist aber trotzdem nötig. Ob lokal auf deinem System oder remote gehostet – stell sicher, dass sie läuft.

Zweitens brauchst du die nötigen Berechtigungen, um SQL-Anweisungen auf der Datenbank auszuführen. Oft sind dafür ‚Superuser‘- oder ‚Datenbankbesitzer‘-Rechte erforderlich. Sonst kannst du die Befehle nicht ausführen, die du für die Informationen zur Datenbankgröße brauchst.

-- You can use this command to verify your current user role
SELECT current_user;

Als Nächstes solltest du grundlegende SQL-Syntax (Structured Query Language) und -Befehle kennen. Wir führen SQL-Abfragen direkt auf unserem PostgreSQL-Server aus, über eine Oberfläche wie psql (das interaktive Terminal von PostgreSQL), PGAdmin4 oder ein anderes Tool deiner Wahl.

Und schließlich ist es hilfreich, Maßeinheiten gut zu verstehen, um die Ergebnisse richtig zu deuten. PostgreSQL gibt Datenbankgrößen meist in Bytes an – das werden schnell riesige Zahlen, die für Menschen schwer zu lesen sind! Wenn du weißt, wie sich Bytes in Kilobytes (KB), Megabytes (MB), Gigabytes (GB) usw. umrechnen, ergeben diese Zahlen Sinn.

Hier einige gängige Umrechnungen:

  • 1 Kilobyte = 1024 Bytes
  • 1 Megabyte = 1024 Kilobytes
  • 1 Gigabyte = 1024 Megabytes

Kurz gesagt: Bevor du Datenbankgrößen in PostgreSQL prüfst, brauchst du passende Zugriffsrechte, Vertrautheit mit SQL-Syntax und -Befehlen, eine aktive Verbindung zu einer laufenden PostgreSQL-Instanz und ein Verständnis von Speichereinheiten. Jetzt sind wir bereit für die konkreten Befehle zum Prüfen der Datenbankgröße in PostgreSQL. Also ab ins Detail! Dafür nutzt du SQL-Abfragen, und ich führe dich durch jeden Schritt.

Öffne zuerst dein PostgreSQL-Kommandozeilentool (psql), das dir direkten Zugriff auf deine Datenbanken gibt. Melde dich dort mit den nötigen Zugangsdaten an. Jetzt kannst du mit den Abfragen loslegen!

Für einen Überblick über den gesamten Speicherplatz aller Datenbanken nutzt du diese einfache Abfrage:

SELECT pg_size_pretty(pg_database_size(pg_database.datname)) AS size_in_mb,
pg_database.datname as database_name
FROM pg_database ORDER BY pg_database_size(pg_database.datname) DESC;

Führ den Befehl aus und voilà! Du bekommst eine Liste aller Datenbanken mit ihren Größen in einem gut lesbaren Format.

Aber was, wenn du nur Infos zu einer bestimmten Datenbank willst? Keine Sorge – auch dafür ist gesorgt! Ersetze ‚your_database‘ in der folgenden Abfrage durch den Namen deiner Datenbank:

SELECT pg_size_pretty(pg_database_size('your_database'));

So erhältst du die Größe genau dieser Datenbank.

Und vergiss nicht: Beide Befehle liefern nur Datengrößen ohne Indizes. Wenn du die mit einbeziehen willst, nutze pg_total_relation_size statt pg_database_size. Verwechsle die beiden auf keinen Fall!

Typische Fehler bei diesen Abfragen sind Tippfehler oder falsche Syntax. SQL verzeiht nichts, wenn auch nur ein Zeichen oder Leerzeichen falsch sitzt! Prüf also immer doppelt, bevor du Enter drückst. Denk auch daran, dass Groß- und Kleinschreibung zählt: ‚Your_Database‘ und ‚your_database‘ gelten als zwei völlig verschiedene Objekte.

Ich hoffe, das vereinfacht deine PostgreSQL-Verwaltung! Denk einfach dran: Bei der Arbeit mit Datenbanken kommt es auf Präzision und Liebe zum Detail an.

Häufige Probleme und Lösungen beim Prüfen der PostgreSQL-Datenbankgröße

Wenn du tiefer in PostgreSQL eintauchst, stößt du unterwegs nicht selten auf ein paar Hürden. Auch beim Prüfen der Datenbankgröße in PostgreSQL können typische Probleme auftreten. Aber keine Panik! Ich zeige dir einfache Lösungen dafür.

Ein typisches Problem sind fehlende Berechtigungen. Nur Superuser oder Benutzer mit passenden Rechten können die Größe von Datenbanken prüfen. Wenn du also die Fehlermeldung „permission denied“ bekommst, liegt es wahrscheinlich daran. Das lässt sich aber leicht beheben! So geht's:

GRANT pg_read_all_stats TO username;

Ersetze einfach username durch deinen tatsächlichen Benutzernamen und voilà!

Ein weiterer Stolperstein: Tabellen- und Schemanamen unterscheiden in SQL-Abfragen zwischen Groß- und Kleinschreibung. Wenn du Kleinbuchstaben tippst, der echte Name aber Großbuchstaben enthält (oder umgekehrt), liefert die Abfrage keine korrekten Ergebnisse. Die Lösung? Setz Namen immer in doppelte Anführungszeichen:

SELECT pg_size_pretty(pg_database_size("YourDatabase"));

Ein dritter häufiger Fehler ist, Materialized Views vor dem Prüfen ihrer Größe nicht zu aktualisieren. Dann werden veraltete Informationen angezeigt, da sich Materialized Views nicht automatisch aktualisieren, wenn sich die Daten in den zugrunde liegenden Tabellen ändern.

So sieht das Aktualisieren einer Materialized View in SQL aus:

REFRESH MATERIALIZED VIEW your_view_name;

Und schließlich: Stell sicher, dass deine PostgreSQL-Version die Funktionen unterstützt, die du zum Prüfen der Datenbankgröße verwendest: pg_size_pretty, pg_total_relation_size usw. wurden in unterschiedlichen PostgreSQL-Versionen eingeführt – also immer doppelt prüfen!

Und das war's! Das sind einige der häufigsten Probleme beim Ermitteln von Datenbankgrößen in PostgreSQL samt Lösungen. Mit diesen Tipps im Gepäck bist du auf dem besten Weg, die PostgreSQL-Datenbankverwaltung zu meistern.

Fazit: Mehr Effizienz durch Wissen über die Datenbankgröße

Zu wissen, wie du die Größe deiner PostgreSQL-Datenbank prüfst, ist nicht nur ein netter Trick, sondern essenzielles Wissen, das dir auf vielfältige Weise zu mehr Effizienz verhilft. Zunächst gibt dir die genaue Größe deiner Datenbank ein klares Bild davon, wie viel Speicherplatz du aktuell nutzt. Das kann bei der Planung von Skalierbarkeit und Wachstum entscheidend sein.

Nimm zum Beispiel diesen einfachen Befehl:

SELECT pg_size_pretty(pg_database_size('your_database_name'));

Ersetze ‚your_database_name‘ durch den Namen deiner Datenbank und voilà! Schon hast du die Größe. So einfach wie eine Tasse Kaffee kochen!

Lass dich von der Einfachheit aber nicht täuschen. Ich habe schon viele Entwickler typische Fehler machen sehen, etwa vergessen, ‚your_database_name‘ zu ersetzen, oder den eigenen Datenbanknamen falsch eingeben. Solche Fehler wirken klein, können aber zu falschen Ergebnissen führen – oder schlimmer noch, zu gar keinen!

Ein weiterer wichtiger Punkt: Mit diesen Informationen kannst du die Abrufzeiten deiner Daten optimieren. Wenn du die Größe deiner Datenbank kennst, kannst du effizientere Abfragen schreiben und Indizes besser verwalten.

Sehen wir uns Folgendes an:

SELECT *,pg_size_pretty(total_bytes) AS total
    , pg_size_pretty(index_bytes) AS INDEX
    , pg_size_pretty(toast_bytes) AS toast
    , pg_size_pretty(table_bytes) AS TABLE
  FROM (
  SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes
    FROM (
      SELECT c.oid,nspname AS table_schema, relname AS TABLE_NAME
          , c.reltuples AS row_estimate
          , pg_total_relation_size(c.oid) AS total_bytes
          , pg_indexes_size(c.oid) AS index_bytes
          , COALESCE(pg_total_relation_size(reltoastrelid), 0) AS toast_bytes
      FROM pg_class c
      LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
      WHERE relkind = 'r'
  ) a) a;

Dieser Befehl liefert dir Gesamtgröße, Indexgröße, TOAST-Größe und Tabellengröße. Damit kannst du fundiertere Entscheidungen zur Indexverwaltung und zu Strategien für den Datenabruf treffen.

Fazit: Auch wenn das Prüfen der PostgreSQL-Datenbankgröße auf den ersten Blick trivial wirkt, ist es tatsächlich ein wichtiges Werkzeug für mehr Effizienz. Wenn du also das nächste Mal mit PostgreSQL-Datenbanken arbeitest, halte diese Befehle griffbereit!

Beekeeper Studio ist eine kostenlose & quelloffene Datenbank-GUI

Das beste SQL-Abfrage- & Editor-Tool, das ich je benutzt habe. Es bietet alles, was ich zum Verwalten meiner Datenbank brauche. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio ist schnell, intuitiv und einfach zu bedienen. Beekeeper unterstützt jede Menge Datenbanken und läuft hervorragend auf Windows, Mac und Linux.

Die Linux-Version von Beekeeper hat 100% des Funktionsumfangs, ohne Abstriche und ohne Kompromisse.

Das sagen Nutzer über Beekeeper Studio

★★★★★
„Beekeeper Studio hat meinen alten SQL-Workflow komplett ersetzt. Es ist schnell, intuitiv und macht die Arbeit mit Datenbanken wieder zum Vergnügen.“
— Alex K., Datenbankentwickler
★★★★★
„Ich habe viele Datenbank-GUIs ausprobiert, aber Beekeeper trifft die perfekte Balance zwischen Funktionsumfang und Einfachheit. Es funktioniert einfach.“
— Sarah M., Full Stack Engineer

Bereit für einen besseren SQL-Workflow?

download Kostenlos herunterladen