dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Script #69
oracle
Performanceread-onlyMin Version: 12c

Oracle'da Kullanılmayan İndeksleri Bulma (DBA_INDEX_USAGE)

Sorgularda kullanılmayan indeksleri erişim sayılarıyla listeler. Gereksiz yazma maliyetini azaltmak için kaldırma adayı çıkarır.

#index-usage#v$object_usage#cleanup
oracle · sql
-- 12.2+ : DBA_INDEX_USAGE
SELECT i.owner, i.index_name, i.table_name, i.index_type,
       NVL(u.total_access_count, 0) AS total_access_count, u.last_used
FROM   dba_indexes i
LEFT JOIN dba_index_usage u ON u.owner = i.owner AND u.name = i.index_name
WHERE  i.owner NOT IN ('SYS','SYSTEM')
  AND  i.uniqueness = 'NONUNIQUE'
  AND  NVL(u.total_access_count, 0) = 0
ORDER  BY i.owner, i.table_name;
Operasyonel Notlar & İyileştirme Aksiyonu

12.2 öncesinde `ALTER INDEX ... MONITORING USAGE` ve `v$object_usage` kullanılır.

Ü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: 12c) 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.