dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Script #11
postgresql
Performanceread-onlyMin Version: 9.x

PostgreSQL'de Yinelenen (Duplicate) İndeksleri Bulma

Aynı tablo, aynı kolon ve aynı koşulla tanımlanmış birebir aynı indeksleri listeler. Gereksiz yazma maliyetini ve disk alanını azaltır.

#duplicate-index#pg_index#cleanup
postgresql · sql
SELECT indrelid::regclass AS table_name,
       array_agg(indexrelid::regclass) AS duplicate_indexes,
       pg_size_pretty(sum(pg_relation_size(indexrelid))) AS total_size
FROM pg_index
GROUP BY indrelid, indkey, indclass, indoption, indexprs::text, indpred::text
HAVING count(*) > 1;
Operasyonel Notlar & İyileştirme Aksiyonu

Sonuçtaki indekslerden birini `DROP INDEX CONCURRENTLY` ile kaldırın; constraint'e bağlı olanlara dikkat edin.

Üretim Güvenliği & Çalıştırma Standartları
  • Bu script salt okunur (read-only) teşhis için tasarlanmıştır; doğrudan veri veya şema değişikliği yapmaz.
  • Ağır yük altındaki üretim sunucularında çalıştırmadan önce hedef veritabanı sürümünü (Min. Sürüm: 9.x) doğrulayın.
  • İlişkili oturumu sonlandırma veya indeks silme gibi yazma etkili aksiyonlar için notlar bölümündeki komutları temkinli uygulayın.