Home Start Back Next End
  
42
Tabel 2.2
menunjukkan
execution
plan
(dari V$SQL_PLAN)
untuk perintah
pada
gambar
2.29.
Optimizer
menulis
kembali
subquery
pada
gambar
2.29 menjadi sebuah view yang kemudian di-JOIN melalui
indeks di tabel
employees.
Hasil
ini
menunjukkan
bahwa
penggunaan
IN lebih
cepat
karena
subquery-nya
mengandung selective
predicate
sehingga
hanya
mengeluarkan
beberapa
employee_id
dan beberapa employee_id tersebut
digunakan untuk mengakses employee tabel melalui unique-index.
Contoh 2
:
menggunakan EXISTS–selective predicate berada pada parent
query
Penggunaan EXISTS juga dapat menghasilkan query
yang
optimal.
Contohnya jika terdapat sebuah query
yang bertujuan untuk menampilkan
semua karyawan yang mempunyai ID yang sama
dengan ID perwakilan
sales  tertentu  yang  bekerja  di  departemen  80  dan  pernah  melayani
pesanan pelanggan.
Gambar 2.30 menunjukkan query dimana pengunaan IN tidaklah optimal:
SELECT e.employee_id, e.first_name, e.last_name,
e.department_id, e.salary
FROM employees
e
WHERE e.department_id = 80
/*Note 5
AND e.job_id
= 'SA_REP'
/*Note 6
AND e.employee_id IN
(SELECT o.sales_rep_id FROM orders o);
/*Note 4
Gambar 2. 30 Query dengan penggunaan IN
*) Keterangan :
Note 4
Penggunaan IN
menunjukkan bahwa subquery tidak
Word to PDF Converter | Word to HTML Converter