Reverse Key index

Salah satu model index dalam DBMS adalah dengan index entry terbalik, yang disebut reverse key index. Oracle menyimpan index dengan byte terbalik kecuali rowid.

Disini akan diberikan beberapa contoh kasus dimana reverse key index dapat meningkatkan performance.
Yang pertama dalam lingkungan RAC. Kolom-kolom yang diisi dengan urutan, entry baru masuk ke dalam blok yg sama saat insert row.

Jika ada beberapa concurrent sesi menginsert row dari intance RAC berbeda maka akan terjadi perebutan blok index antar node.

Jika anda menggunakan menggunakan reverse key index maka entry baru akan pergi ke blok berbeda dan perebutan akan berkurang.

Pada single intance database ada juga kasus dimana reverse key index sangat berguna. Kolom-kolom yg diisi dengan sequence, anda coba menghapus data dari table dan anda tidak melakukan scan range pada kolom dan terjadi masalah perebutan pada blok index, reverse key index patut dipertimbangkan. Reverse key index akan menyebarkan entry ke blok-blok yg berbeda selama masa insert dan session yg bersamaan tidak akan mengalami masalah perebutan blok.

Jika anda menghapus data, blok dari normal index pada data tersebut akan terdapat ruang kosong dan ruang isi, akan tetapi blok-blok tersebut tidak didaftarkan dalam freelist krn belum benar-benar free. Ruang yang kosong tidak akan digunakan karena nilai sequence selalu bertambah dan karenanya insert data tidak akan mengisi blok lama/kosong. Dengan menggunakan reverse key index ruang kosong dari blok yg lama bisa diisi.

Satu hal yg harus diperhatikan pada reverse key index, bahwa anda tidak dapat melakukan range scan pada reverse key index krn entry disimpan terbalik maka kemampuan range scan menjadihilang.

Untuk merubah index yg ada menjadi reverse key index anda dapat menggunakan command ;
alter index indexname rebuid reverse;


				

~ by Ali Imran on May 30, 2011.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: