FCase'de PostgreSQL'de Disk Optimizasyonu Yapılması
Postgresql’de herhangi bir kayıt silindiğinde veya güncellendiğinde ardında silinmiş gibi görünen ancak yer kaplayan ölü alanlar bırakır. Vacuum, “dead-tuple” diye nitelendirilen bu ölü alanları kurtarmak için kullanılmaktadır. Vacuum işleminin ana görevi bu “dead-tuple”’ları yeniden kullanılabilir, üzerine yazılabilir hale getirmektir.
Analyze
Analyze ile birlikte tabloda oluşmuş olabilecek istatistik bozulmaları ya da planner’ın daha verimli çalışmasını sağlayabiliriz. Analyze tablodaki veri istatistiklerini de güncelleyerek daha performanslı sorgular oluşturmanıza yardımcı olabilir.
vacuum analyze fcase.tablename;
Vacuum Full
Vacuum full işlemi ile birlikte ilgili tablonun tamamı kopyalanarak, yeniden yazılır. Tablo yeniden yazılırken dead-tuple’lardan arındırılır ve daha düzenli bir şekilde yazma işlemi gerçekleştirilir, böylece verinin kapladığı alan küçültülmüş olur.
Vacuum full kullanılırsa hem kullanılan tablo hem de ona bağlı tablolar üzerinde locklama işlemi gerçekleştirilir, VACUUM FULL sırasında ilgili tabloda işlem yapılamaz. Bu nedenle production’da kullanılması çok önerilmez ya da çok dikkatli olunmalıdır.
Vacuum Full için en az o tablo kadar boş alanınızın olması gerekmektedir, yeniden oluşturma işlemi için bu gereklidir. Çünkü Vacuum Full ile birlikte tablonun yeni bir kopyası oluşturulur.
vacuum full analyze fcase.tablename;
- İşlem yapılan tablo ve ona bağlı tablolar için exclusive lock atılır.
- Yeniden kopyalama için boş bir alan oluşturulur.
- Tüm tuple’lar/veriler bu yeni alana kopyalanır.
- Kopyalama tamamlanınca, eski kalan alan temizlenir.
- Son olarak atılan lock kaldırılır.
FCase'deki Büyük Tablolar
- customer_ticket
- customer_ticket_event
- customer_ticket_detail
- ticket_score_log
Aşağıdaki komutla en fazla alan kaplayan tablolar görülebilir. Ardından ilgili tabloya vacuum çalıştırılır.