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.
-- 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;12.2 öncesinde `ALTER INDEX ... MONITORING USAGE` ve `v$object_usage` kullanılır.
- 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.
Diğer ORACLE Teşhis Scriptleri
Tümünü Gör (100)Oracle Aktif Oturumlar ve Bekleme Olayları
Aktif kullanıcı oturumlarını, çalışan SQL_ID'yi ve bekleme olayını süresiyle listeler. Performans sorunlarında anlık durumu görmek için kullanılır.
Oracle Bloklayan Oturumları Bulma
Başka bir oturumu bekleten oturumları ve bekleme sürelerini gösterir. Kilit sorunlarında sonlandırılacak kök oturumu belirler.
Oracle Tablespace Doluluk Oranı (Autoextend Dahil)
Autoextend sınırlarını hesaba katarak tablespace doluluğunu gerçek maksimuma göre verir. ORA-01653 gibi alan hatalarını önceden yakalamanızı sağlar.
Oracle En Pahalı SQL'ler: v$sqlstats ile Top 20
Geçen süreye göre en maliyetli SQL'leri çalışma sayısı, CPU ve I/O ile gösterir. Ayar için hangi SQL_ID'nin inceleneceğini belirler.