505 Stimmen

Postgres DB Größenbefehl

Was ist der Befehl, um die Größe aller Datenbanken zu finden?

Ich kann die Größe einer bestimmten Datenbank mit folgendem Befehl finden:

select pg_database_size('databaseName');

31voto

Shaun McCready Punkte 703
SELECT pg_size_pretty(pg_database_size('Name der Datenbank'));

Gibt Ihnen die Gesamtgröße einer bestimmten Datenbank aus, jedoch glaube ich nicht, dass Sie alle Datenbanken innerhalb eines Servers abfragen können.

Jedoch könnten Sie Folgendes tun...

DO
$$
DECLARE
r   RECORD;
db_size TEXT;
BEGIN
FOR r in
SELECT datname FROM pg_database
WHERE datistemplate = false
LOOP
db_size:= (SELECT pg_size_pretty(pg_database_size(r.datname)));

RAISE NOTICE 'Database:% , Size:%', r.datname , db_size;

END LOOP;
END;
$$

13voto

GollyJer Punkte 18284

Von der PostgreSQL Wiki.


HINWEIS: <em>Datenbanken, zu denen der Benutzer keine Verbindung herstellen kann, werden sortiert, als ob sie unendlich groß wären.</em>

SELECT d.datname AS Name,  pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
        ELSE 'Kein Zugriff'
    END AS Size
FROM pg_catalog.pg_database d
    ORDER BY
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_database_size(d.datname)
        ELSE NULL
    END DESC -- nulls first
    LIMIT 20

Die Seite enthält auch Ausschnitte zum Finden der Größe Ihrer größten Relationen und größten Tabellen.

8voto

SPRBRN Punkte 2312

Starten Sie pgAdmin, verbinden Sie sich mit dem Server, klicken Sie auf den Datenbanknamen und wählen Sie den Statistik-Tab aus. Sie sehen die Größe der Datenbank am unteren Ende der Liste.

Wenn Sie dann auf eine andere Datenbank klicken, bleiben Sie im Statistik-Tab, so dass Sie viele Datenbankgrößen ohne großen Aufwand leicht sehen können. Wenn Sie die Tabellenliste öffnen, werden alle Tabellen und ihre Größen angezeigt.

5voto

Anvesh Punkte 6100

Sie können die folgende Abfrage verwenden, um die Größe aller Datenbanken von PostgreSQL zu finden.

Der Verweis stammt aus diesem Blog.

SELECT 
    datname AS Datenbankname
    ,pg_catalog.pg_get_userbyid(datdba) AS BesitzerName
    ,CASE 
        WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
        THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(datname))
        ELSE 'Kein Zugriff für Sie'
    END AS Datenbankgröße
FROM pg_catalog.pg_database
ORDER BY 
    CASE 
        WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
        THEN pg_catalog.pg_database_size(datname)
        ELSE NULL
    END DESC;

1voto

Jon Carnes Punkte 27
du -k /var/lib/postgresql/ | sort -n | tail

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X