![]() 46
Gambar
2.33
menunjukkan
bagaimana
cara
untuk
mengoptimasi
urutan
JOIN :
SELECT info
FROM taba a, tabb b, tabc c
WHERE a.acol BETWEEN 100 AND 200
AND b.bcol BETWEEN 10000 AND 20000
AND c.ccol BETWEEN 10000 AND 20000
AND a.key1 = b.key1
AND a.key2 = c.key2;
Gambar 2. 33 Contoh perintah join yang dapat dikerjakan
dengan berbagai kondisi
Jumlah baris
yang akan diperiksa dari tabel
a
ada 100, sedangkan tabel b
dan
tabel
c
mempunyai
10000
baris.
Query
dengan
predikat
yang
demikian akan menghasilkan 2 hasil yang sangat jauh berbeda, yaitu :
Kondisi pertama :
Jika
proses
selective-query
pertama
kali
dilakukan
pada
tabel
b join
dengan
c,
akan
membutuhkan
10000
proses, sekalipun terdapat indeks.
Hasilnya akan join dengan tabel a yang hanya mempunyai 100 baris,
dengan ini akan membutuhkan 100 proses.
Kondisi kedua :
Jika
tabel
a
di
join
-
kan
dengan
tabel
b
terlebih
dulu
maka
jumlah
proses
yang
digunakan
adalah
100
proses
yang
akan
berjalan
dengan
cepat melalui penggunaan indeks. Kemudian 100 baris yang dihasilkan
akan
join
dengan
tabel
c
yang
juga
akan
memerlukan
100
proses
dan
akan berjalan dengan cepat karena penggunaan indeks.
|