![]() 40
Query
ini bertujuan untuk
mencari semua pekerja yang
melayani pesanan
pada id pelanggan 144
Gambar 2.28
menunjukan SQL
untuk
mencari
hal
tersebut jika
menggunakan perintah EXISTS
SELECT e.employee_id,e.first_name,e.last_name,e.salary
FROM employees e
WHERE EXISTS(SELECT 1 FROM orders o
/* Note 1 */
WHERE e.employee_id = o.sales_rep_id
/* Note 2 */
AND o.customer_id = 144);
/* Note 3 */
Gambar 2. 28 SQL dengan pengunaan perintah EXISTS
*) Keterangan :
Note 1 Penggunaan EXISTS
Note 2 Penggunaan EXISTS merupakan correlated-subquery
Note
3
Baris
ini
menunjukkan
bahwa
di
dalam
correlated-subquery
ini terdapat sebuah selective-query
Tabel 2.1 Execution plan dengan penggunaan EXISTS
ID
OPERATION
OPTIONS
OBJECT_NAME
OPT
COST
0
SELECT STATEMENT
CHO
1
FILTER
2
TABEL ACCESS
FULL
EMPLOYEES
ANA
155
3
TABEL ACCESS
BY INDEX
ROWID
ORDERS
ANA
3
4
INDEX
SCAN
ORD_CUSTOMER_IX
ANA
1
Tabel 2.1
menunjukkan proses eksekusi (dari
V$SQL_PLAN)
untuk
perintah pada
gambar 2.28. Proses eksekusi
yang ditunjukkan pada table
2.1 memerlukan full-tabel scan dari tabel employees yang mana
|