PostgreSQL Veri Tabanı Boyut Raporu Hazırlama Scripti

0 Yanıtlar 7 Görüntülenme
·
Katılımcılar
Konuyu Açan #0
PostgreSQL veritabanlarının boyutlarını detaylı ve düzenli şekilde raporlamak, sistem yöneticileri ve veritabanı yöneticileri için oldukça önemli bir ihtiyaçtır. Bu noktada, SQL ve pl/pgSQL kullanarak hazırlayacağınız otomatik raporlama scriptleri, veritabanının genel durumu ve detayları hakkında hızlı ve doğru bilgi sağlar.

İlk olarak, veritabanının toplam boyutunu öğrenmek için şu sorgu kullanılabilir:

KOD
12
SELECT pg_size_pretty(pg_database_size(current_database())) AS toplam_boyut;


Bu temel bilgi dışında, her bir tablo ve indeksin boyutlarını ayrı ayrı görmek, sorunlu alanları tespit etmek açısından kritiktir. Aşağıdaki script, veritabanındaki tüm tabloların toplam boyutlarını, indeksleri ve toplamlarını listeler:

KOD
1234567891011121314151617181920
WITH tablo_boyutlari AS (
  SELECT
    schemaname,
    relname AS tablo_adi,
    pg_size_pretty(pg_relation_size(C.oid)) AS tablo_boyutu,
    pg_size_pretty(pg_total_relation_size(C.oid) - pg_relation_size(C.oid)) AS indeks_boyutu,
    pg_size_pretty(pg_total_relation_size(C.oid)) AS toplam_boyut
  FROM pg_class C
  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
  WHERE C.relkind = 'r'
)
SELECT
  schemaname,
  tablo_adi,
  tablo_boyutu,
  indeks_boyutu,
  toplam_boyut
FROM tablo_boyutlari
ORDER BY pg_total_relation_size(C.oid) DESC;


Bu sorgu, her tablo ve indeksin boyutlarını detaylı biçimde gösterir. Ayrıca, veritabanı içindeki toplam alan kullanımı ve genişleme alanları hakkında da bilgi sağlar. Bunlar, performans optimizasyonu, temizlik ve kapasite planlaması yaparken kullanışlıdır.

Düzenli raporlama ve otomatik izleme için bu sorguları bir fonksiyon haline getirip, zamanlanmış görevler veya scriptler aracılığıyla periyodik olarak çalıştırabilirsiniz. Ayrıca, çıktıların CSV veya JSON formatına dönüştürülmesi, raporlama süreçlerini kolaylaştırır.

Veritabanı büyüklüğü ve performans analizi açısından bu scriptler, özellikle büyük ve karmaşık yapıya sahip PostgreSQL sistemlerinde vazgeçilmez araçlardır. Deneyimlerinize göre, bu temel sorguları özelleştirerek, belirli tablolar veya schema'lar bazında raporlama yapmanız da mümkün.

Kullandığınız PostgreSQL sürümüne göre, sorgularda küçük farklılıklar olabilir; bu nedenle uyumluluk testleri yapmayı unutmayın. Bu scriptleri kendi ortamınıza göre adapte ederek, veritabanı sağlığını sürekli kontrol altında tutabilirsiniz.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi