Bitmap Join Index


Dalam peningkatan kinerja Oracle10g dibuat Materialized View untuk menyimpan baris yang dihasilkan dari query. Manfaat dari mekanisme ini masih relevan, tapi subset tertentu dari query yang digunakan dalam data warehouse dapat mengambil manfaat dari penggunaan Bitmap Join Index.

Cara Kerja
Dalam Bitmap Index, setiap nilai yang berbeda untuk kolom tertentu dikaitkan dengan suatu bitmap dimana setiap bit mewakili baris pada tabel. Sebuah ‘1 ‘berarti bahwa baris yang berisi nilai, ‘0’ berarti tidak.
Bitmap Join Index memperluas konsep seperti ini bahwa indeks berisi data untuk mendukung join query, memperbolehkan query untuk mengambil data dari index daripada referensi join tabel. Setelah informasi dikompresi ke dalam bitmap, ukuran struktur yang dihasilkan secara signifikan lebih kecil dari Materialized View.

Pembuatan

Index ini dibuat dengan mengacu pada kolom dalam join table dengan yang akan digunakan untuk mendukung query. Pada contoh berikut ini index dibuat di tabel SALES join ke tabel CUSTOMERS: 
CREATE BITMAP INDEX CUST_SALES_BJI
ON SALES(CUSTOMERS.STATE)
FROM  SALES, CUSTOMERS
WHERE SALES.CUST_ID = CUSTOMERS.CUST_ID;

Karena kolom CUSTOMERS.STATE dirujuk dalam klausa ON dari index, query pada tabel SALES yang join ke tabel CUSTOMERS untuk mengambil kolom STATE dapat melakukannya tanpa referensi tabel CUSTOMERS. Sebaliknya data dibaca dari bitmap join indeks:
SELECT SUM(SALES.DOLLAR_AMOUNT)
FROM   SALES,CUSTOMER
WHERE  SALES.CUST_ID  = CUSTOMER.CUST_ID
AND    CUSTOMER.STATE = 'CALIFORNIA';

Ketika berhadapan dengan dataset besar, dapat mengurangi pemrosesan sangat besar. 

Pembatasan
Bitmap Gabung Indeks memiliki batasan sebagai berikut:

  • DML Paralel saat ini hanya didukung pada tabel fakta. DML paralel pada salah satu tabel dimensi yang berpartisipasi akan ditandai indeks sebagai unusable.
  • Hanya satu tabel dapat diperbarui bersamaan dengan transaksi yang berbeda bila menggunakan indeks bitmap join.
  • Tidak ada tabel yang muncul dua kali dalam join.
  • Tidak dapat membuat bitmap index join pada tabel IOT atau tabel TEMPORARY.
  • Kolom dalam indeks semua harus kolom dari tabel dimensi.
  • Join kolom tabel dimensi harus berupa kolom primary key atau memiliki sifat unique.
  • Jika tabel dimensi memiliki kunci primer komposit, setiap kolom pada kunci primer harus menjadi bagian dari join.

Semoga ini bisa membantu.

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s