Index Monitoring

Index İzleme

Select cümlelerimiz daha hızlı netice versin diye tablolarımıza indexler ekleriz. Index oluşturmanın temel amacı performans artışı olmasına rağmen bazen indexler tersine bir neticede verebilir. Bir index tablo üzerinde yapılan insert,update işlemlerini yavaşlatabilir ve gereksiz yere kaynaklarımızı tüketebilir. Böylece kullanılmayan indexleri kaldırmak isteriz. Index monitoring bize bu aşamada yardımcı olur ve gerçekten kullanılan bir indexi drop etmemizi engeller.
Gereksiz bir indexi bulabilmek için öncelikle monitoring işlemini başlatmalıyız.

 
ALTER INDEX index_1 MONITORING USAGE;
 

Monitör işlemini durdurmak için

 
ALTER INDEX index_1 NOMONITORING USAGE;
 

Monitör işleminin neticesini görmek için

 
SELECT index_name,
       table_name,
       monitoring,
       used,
       start_monitoring,
       end_monitoring
FROM   v$object_usage
WHERE  index_name = 'index_1'
ORDER BY index_name;
 

Tek bir index için yapacağınız işlemler bunlar.

Eğer tüm indexleri izlemek istiyorsanız aşağıdaki gibi bir script yazmanız gerekebilir.

 
DECLARE CURSOR
cr_index IS SELECT index_name FROM user_indexes
index_rec cr_index%ROWTYPE;
BEGIN
FOR index_rec IN cr_index LOOP
  EXECUTE IMMEDIATE 'alter index '||index_rec.index_name||' monitoring usage';
END LOOP;
END;
 

Tüm indexler için monitor işlemini durdurmak isterseniz

 
DECLARE CURSOR
cr_index IS SELECT index_name FROM user_indexes
index_rec cr_index%ROWTYPE;
BEGIN
FOR index_rec IN cr_index LOOP
  EXECUTE IMMEDIATE 'alter index '||index_rec.index_name||' nomonitoring usage';
END LOOP;
END;
 

Eğer TOAD kullanıyorsanız bu işlemleri Database->Monitor-> Index Monitoring menüsü yardımı ile yapabilirsiniz.

Bu yöntemi kullanarak kullanılmayan indexleri bulup onlardan rahatlıkla kurtulabilirsiniz.

bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark
tabs-top

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment