Bazıları milyonlarca kayıt tutan çeşitli rollere sahip tablolar içeren büyük (yüzlerce konser) bir veritabanı yönetiyorum. Bazı tablolarda yalnızca çok sayıda ekleme ve silme, bazı diğer birkaç ekleme ve çok sayıda güncelleme bulunur.
Veritabanı, 16 gigabayt RAM ile Debian 6.0 amd64 sisteminde PostgreSQL 8.4 üzerinde çalışır.
Soru bazen bir masadaki otovakum işlemidir, tamamlanması çok uzun zaman alır (günler). Kabaca belirli bir vakum komutunun ne kadar zaman alacağını, iptal edip etmeyeceğimize karar verebilmek istiyorum. Ayrıca postgres vakum operasyonları için bir ilerleme göstergesi olsaydı, gerçekten yararlı olurdu.
Düzenle:
Kurşun geçirmez bir çözüm aramıyorum. Karar vermek için sadece ölü kapların sayısı veya gerekli G / Ç baytlarının sayısı hakkında kabaca bir ipucu yeterlidir. Ne zaman VACUUM
bitecek, hiçbir ipucu olmaması gerçekten can sıkıcı .
pg_catalog.pg_stat_all_tables
Ölü kaplumbağalar için bir sütun olduğunu gördüm . Bu nedenle, daha ANALYZE
önce tabloya sahip olması gerektiği anlamına gelse bile, bir tahmin yapmak mümkündür . Öte yandan autovacuum_vacuum_threshold
ve autovacuum_vacuum_scale_factor
ayarlar tek başına postgres'in kendisinin masalardaki değişim miktarı hakkında bir şeyler bildiğini ve muhtemelen DBA'nın ellerine koyduğunu kanıtlıyor .
Çalıştırdığımda VACUUM VERBOSE
, yalnızca tabloların değil, aynı zamanda bunlardaki dizinlerin de işlendiğini gördüğüm için hangi sorguyu çalıştırılacağından emin değilim .