dataiotech Labs
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.

Mühendislik Triadı: İlgili Runbook ve Kriz Müdahaleleri

Bu script hangi üretim alarmlarında ve acil durum tatbikatlarında teşhis adımı olarak çalıştırılır?

Runbook Kütüphanesi (63)
Proaktif Bakım & Rutin Sağlık Taraması: Bu script acil durum alarmına bağlı değildir; planlı bakım, kapasite planlama ve rutin DBA sağlık kontrolleri için kullanılır.