Select index_owner, table_name, index_name, column_name
FROM dba_ind_columns
Where index_owner='BERKE'
Order by index_owner, table_name, column_name;
Peki invalid olan index'ler nasıl bulunabilinir?
Aşağıdaki sorgular ile hangi index'lerin invalid olduğunu bulabiliriz.
select * from dba_indexes where status ='INVALID';
select * from dba_objects where object_type='INDEX' and status ='INVALID';
Invalid olanları bulduktan sonra nasıl rebuild edebiliriz?
Index rebuild etmenin sorgusu görece kolaydır; ancak sorgu çalıştırılmadan önce index'in size'ı ölçülmelidir. Bu sayede index rebuild sorgumuza hem fazladan argüman koyulup koyulmaması gerektiği görülür hem de vereceğimiz sorgunun ne kadar süreceği tahmin edilebilinir.
alter index rebuild online;;
veya
alter index rebuild;
Index'ler ne zaman rebuild edilmelidir, nelere dikkat edilmelidir?
Index'ler genellilkle yeni data'lar eklendiğinde veya data'lar silindiğinde değişikliklerin etki etmesi için rebuild edilmelidir.
Buna istinaden yine index performansı düşük olanlara ve büyük dml işlemleri yapılan tablolardaki indexlere rebuild işlemi uygulanır.
Index Rebuild Performansı
Index'lerde rebuild edilmeden önce index size'ına bakılmalıdır; çünkü büyük index'ler rebuild edildiğinde uzun süre database resource'u tüketebilir.
select segment_name,(bytes)/1024/1024 as "MB",(bytes)/1024/1024/1024 as "GB" from dba_segments where segment_type='INDEX' order by "MB" desc;
Eğer büyük index'ler rebuild edilmek isteniyorsa NOLOGGING argümanıyla çalıştırılmalıdır.
Ayrıca index'ler PARALLEL argümanıyla çalıştırılırlarsa çalıştırılma performansı artar, index rebuild hızlanır.
Index Monitoring:
Index monitoring ile bir index'in kullanılıp kullanılmadığını bulabiliriz. Her ne kadar index monitörleme işi ile database üzerine bir yük eklesek de kullanılmayan index'leri bulup silmek bize yer kazandırabilir.
Monitor başlatma ve bitirme:
ALTER INDEX indexa MONITORING USAGE;
ALTER INDEX indexa NOMONITORING USAGE;
Monitörlenen index'leri bulma:
SELECT index_name,
table_name,
monitoring,
used,
start_monitoring,
end_monitoring
FROM v$object_usage
WHERE index_name = 'indexa'
ORDER BY index_name;
Referans:
http://richardfoote.wordpress.com/category/index-rebuild/
http://jonathanlewis.wordpress.com/2009/06/05/online-rebuild/
http://docs.oracle.com/cd/B28359_01/server.111/b28310/indexes003.htm#ADMIN11722
http://www.dba-oracle.com/t_scheduling_oracle_index_rebuilding.htm
http://www.dba-oracle.com/t_index_rebuilding_issues.htm
http://www.oracle-base.com/articles/10g/index-monitoring.php
Hiç yorum yok:
Yorum Gönder