Kuliah

Database SQL : Nested Loops Join


Sesekali bikin tulisan tentang mata kuliah ya, jadi kesempatan ini saya akan menjelaskan secara ringkas dan sederhana
mengenai materi yang saya pelajari yaitu Nested Loops Join. Apabila
terdapat kesalahan, mohon untuk dikoreksi pada kolom komentar, terima
kasih.
Jadi sebetulnya apa sih Nested Loops Join itu?? Secara sederhananya,
Nested Loops Join itu membandingkan tiap baris dari satu table (Dikenal
dengan sebutan Outer Table) dengan tiap baris pada satu table lainnya
(Dikenal dengan sebutan Inner Table) mencari suatu baris yang mana
memenuhi persyaratan dari fungsi Join.
Kurang lebih, logika dasar perjalanan dari proses ini mirip seperti
model matematika saat SMA dahulu, seperti gambar dibawah ini:

Algoritma dasar dari proses ini dapat diekspresikan melalui pseudocode dibawah ini:

Apabila kita melakukan proses Nested Loop Join, maka total cost baris
yang dihasilkan berbanding lurus dengan besar size table yang ada pada
tiap table, besar size pada Outer Table dikalikan dengan besar size
Inner Table. Namun, dalam praktiknya kita berusaha untuk meminimalisir
cost dengan mengurangi jumlah baris pada Inner Table terhadap baris pada
Outer Table.
Contoh melakukan Nested Loops Join adalah sebagai berikut, akan
dibuat dan digunakan 2 table (Customer dan Sales) dengan masing-masing
data dibawah ini.

Lalu, akan dilakukan proses Nested Loops Join menggunakan Query dengan “Set Statistics Profile On” seperti berikut

Pada hal ini, yang menjadi Outer Table adalah Customer, sedangkan
yang jadi Inner Table adalah Sales. Proses scanning pun dimulai dengan
memilih table Customer terlebih dahulu dengan mengambil satu customer.
Untuk tiap customer yang dipilih, dilakukan proses scanning table Sales.
Dikarenakan kita memiliki tiga customer, maka kita mengeksekusi table
Sales sebanyak 3x dimana tiap scan table Sales, akan mengembalikan
hasil empat baris.
Pada kasus ini, kita akan membandingkan tiap sales terhadap customer
dan mencari keduanya yang mana mempunyai Cust_Id yang sama pada kedua
table, jika ditemukan, maka akan ditampilkan dengan berpasangan.
Dikarenakan kita mempunyai data customer sebanyak 3 dan data sales
sebanyak 4, maka proses pembandingan dan pencarian yang dilakukan
sebanyak 3×4 = 12 kali dan menghasilkan 3 hasil yang sesuai

Beberapa syarat yang berlaku dalam Nested Loops Join adalah sebagai berikut:
  1. Nested Loops Joins support semua jenis Join Predicate termasuk Equality Predicate dan Inequality Predicate
  2. Nested Loops Joins support logical join operator:
  • Inner Join
  • left Outer Join
  • Cross Join
  • Cross Apply
  • Outer Apply
  • Left Semi Join
  • Left Anti Semi Join

      3. Nested Loops Join TIDAK support logical join operator:

  • Right & Full Outer Join
  • Right Semi Join & Right Anti Semi Join
Jadi, apakah penggunaan Nested Loops ini bagus ataukah buruk??
Semua itu bergantung pada kondisi yang ada, Tiap algoritma
join akan bekerja dengan baik dan benar pada saat yang tepat dan akan
bekerja dengan tidak maksimal pada saat yang salah. Namun pada dasarnya,
dikarenakan cost dari penggunaan Nested Loops Join ini bergantung
dengan size Outer Table dikalikan dengan size Inner Table, maka
penggunaan Nested Loops Join umumnya digunakan pada kumpulan data yang
tidak terlalu besar.

Terimakasih telah membaca di Piool.com, semoga bermanfaat dan lihat juga di situs berkualitas dan paling populer Aopok.com, peluang bisnis online Topbisnisonline.com dan join di komunitas Topoin.com.


Comments

Paling Populer

To Top