Antworten:
Führen Sie diese Abfrage aus, um anzuzeigen, ob / wann Ihre Tabellen zuletzt gesaugt wurden.
SELECT * FROM pg_stat_all_tables;
Eine Tabelle wird erst gesaugt, wenn der Einfüge- / Aktualisierungs- / Löschschwellenwert von 20% erreicht ist.
Sie können die Einstellung in RDS optimieren, indem Sie eine neue DB-Parametergruppe erstellen und die gewünschte Einstellung ändern.
In der RDS-Dokumentation heißt es:
Autovacuum ist standardmäßig für alle neuen Amazon RDS PostgreSQL DB-Instanzen aktiviert, und die zugehörigen Autovacuum-Konfigurationsparameter sind standardmäßig entsprechend festgelegt. Da unsere Standardeinstellungen etwas allgemein gehalten sind, können Sie von der Anpassung der Parameter an Ihre spezifische Arbeitslast profitieren.
Sie können die Aktivierung von Autovacuum mit diesem Befehl überprüfen: SHOW autovacuum;
um eine einfache on
oder off
Antwort zu erhalten.
Mit diesem Befehl erhalten Sie detailliertere Informationen: SELECT name, setting FROM pg_settings WHERE name LIKE '%autovacuum%';
Beispiel für zurückgegebene Daten:
name | setting
-------------------------------------+-----------
autovacuum | on
autovacuum_analyze_scale_factor | 0.05
autovacuum_analyze_threshold | 50
autovacuum_freeze_max_age | 200000000
autovacuum_max_workers | 3
autovacuum_multixact_freeze_max_age | 400000000
autovacuum_naptime | 5
autovacuum_vacuum_cost_delay | 5
autovacuum_vacuum_cost_limit | -1
autovacuum_vacuum_scale_factor | 0.1
autovacuum_vacuum_threshold | 50
autovacuum_work_mem | -1
log_autovacuum_min_duration | -1
rds.force_autovacuum_logging_level | disabled
Diese Einstellungen (und weitere vacuum
Einstellungen) sind hier für Postgres dokumentiert .
SHOW autovacuum;
. Oder aktivieren Sie die automatische Vakuumprotokollierung und überprüfen Sie die Protokolle. RDS erfordert sicherlich Vakuum, aber ich wäre überrascht, wenn es kein ziemlich aggressives Autovakuum betreiben würde.