![]() 62
Dari kedua perbandingan di atas terlihat bahwa jika sebuah index tidaklah
optimal
untuk
menjalankan
sebuah query
maka
optimizer
akan
lebih
memilih
untuk
menggunakan
Table
Access
Full
karena
penggunaan
index tersebut
membuat
optimizer
harus
bekerja
lebih dimana
selain
mencari
semua
baris
dalam tabel,
optimizer
juga
harus
mencari
baris
dalam
index
yang
dispesifikasikan.
Menurut
Niemiec
(2007,
p41-42)
Ada
beberapa
hal
yang
membuat
index tidak dibaca oleh optimizer, yaitu :
-
Penggunaan operator <> dan !=
Indeks hanya dapat digunakan untuk menemukan data yang
terdapat
di
dalam tabel.
Setiap
terdapat
operator
not
equal
di
dalam
klausa
WHERE,
indeks
yang
terdapat
di
dalam kolom yang
direferensikan tidak akan digunakan. Sebagai contoh pada
gambar 2.54,
terdapat
sebuah tabel CUSTOMER dan terdapat
indeks di dalam kolom
CUST_RATING dan query yang ingin dijalankan adalah untuk
mengambil data dimana cust_ratingnya bukan aa. Proses eksekusi
yang
dijalankan
adalah full
table
scan
walaupun
terdapat
indeks
pada
kolom CUST_RATING.
SELECT cust_id, cust_name
FROM customers
WHERE cust_rating <> 'aa';
Gambar 2. 54 Query dimana index tidak digunakan karena
adanya sintaks <>
|