Frage

Ich mag eine PostgreSQL-Datenbank von PHP Vakuum.

Ich habe versucht, dies:

pg_query($conn,"vacuum analyse;");

Wie kann ich feststellen, ob das funktioniert?

War es hilfreich?

Lösung 2

Führen Sie diese Abfrage vor und nach der Vakuum Abfrage ausgeführt wird. Wenn ‚Alter‘ weniger nach dem Vakuum ist, als es vorher war, dann hat das Vakuum läuft erfolgreich.

SELECT age(datfrozenxid) as age FROM pg_database where datname='your_db';

Andere Tipps

Erste Frage: Warum haben Sie tun VACUUM FULL ? Es macht keinen Sinn machen. Es wäre praktisch nie genannt.

Zweitens: Laufen Vakuum von PHP (vermutlich Webseite) kann problematisch sein. Vakuum kann leicht mehr als 3 Minuten dauern, das ist Standard-Timeout für Web-Anfragen (wenn ich mich richtig erinnere).

Die beste Lösung ist autovacuum zu verwenden. Wenn Sie nicht verwenden können autovacuum -. Zeitplan vacuumdb ruft cron mit

Angenommen, Ihr Vakuum läuft für mehr als ein paar Sekunden können Sie „SELECT * FROM pg_stat_activity“ in einem Postgres-Client, um eine Liste der aktuell ausgeführten Abfragen ausführen. Ihre VACUUM Abfrage sollte es zeigen.

Ich glaube, es keinen Fehler zurückgibt, ist es wahrscheinlich zu arbeiten. Hier sind die docs auf Vakuum.

http://www.postgresql.org/docs/current /interactive/sql-vacuum.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top