Reindexing

#ekip tablosunda per_no kolonuna index oluşturulması
create index inx_ekip_perno on ekip (per_no) ;
#Tek bir index için indeksin yeniden oluşturulması (rebuild)
reindex index inx_ekip_perno ;
reindex index concurrently inx_ekip_perno;
#Bir tablodaki tüm indeksler için reindex işlemi
reindex table ekip ;
reindex table concurrently ekip ;
#Bir veritabanındaki tüm indeksler için reindex işlemi
reindex database testdb ;

Reindex ACCESS EX-CLUSIVE kilide neden olur. Bu yüzden sadece SHARE
UPDATE EXCLUSIVE
kilide neden olan CONCURRENTLY opsiyonu ile kullanılması
tercih edilir.

Kitaplardaki indekslerde, aranan kelimenin ya da konunun sayfası verilir. Böylece tüm
kitabı taramadan nokta atışı sayfaya gidilebilir. Veritabanındaki indeksler de benzerdir.
Aranan anahtara (key) sahip satırın hangi disk bloğunda olduğunu adresler. İndeks için,
anahtar (key) ve disk blok adresini içeren küçük tablolardır diyebiliriz.

İndeksler daha fazla yazma işlemine neden olacağı için yazma (insert) işleminin
performansını düşürürken okuma (select) ve okuma ve yazma işlemlerinin beraber
yapıldığı güncelleme ve silme (update/delete) işlemlerinin hızını artırır.

Btree indeks bloklarının tamamen silindiği durumlarda disk alanı sisteme geri verilir.
Yani index artık diskte yer kaplamaz. Bununla birlikte, tümü silinmiş ama çok az sayıda
index bloğu kalmış olsa bile diskte tüm indeks halen duruyormuş gibi yer kaplamaya
devam eder. Yani diskte kullanılamayan atıl alanlar oluşur. Bunun için periyodik
aralıklarla indeks boyutlarının monitor edilmesi ve reindex işlemi önerilir.

Özellikle delete ve update işlemlerinin çok olduğu tabloların btree indexlerin
reindex ile yeniden yapılandırılması ile bloklar bitişik hale geleceğinden performansı
artıracaktır.

Kategori seçin...