Liigu sisu juurde

SQL ühendamisoperatsioonid

Visualiseeritud algoritmide õppevahend üliõpilastele.

1. Andmebaasi tabelid

Vaatame kahte tabelit: Klient ja Tellimus. Soovime leida iga tellimuse jaoks kliendi nime (JOIN tingimus: Klient.klient_id = Tellimus.klient_id).

Klient (Tabel A)

klient_ideesnimi
Räsitabel (Mälus)

Tellimus (Tabel B)

tellimus_idklient_idsumma

Algoritmi valik

Pesastatud tsükli algoritm (Nested Loop Join)

Võetakse esimene rida välimisest tabelist ja võrreldakse seda kõigi ridadega sisemisest tabelist. Seejärel võetakse teine rida jne. Välimiseks tabeliks valitakse see, kus on võrreldes sisemise tabeliga vähem ridu, mis lähevad ühendamise sisendiks.
Kasutatakse: Väikeste tabelite puhul või kui liitmistingimusel pole indekseid.

Sortimise ja mestimise algoritm (Merge Sort Join)

Mõlemad tabelid sorditakse ühendatava veeru alusel. Seejärel liigutakse mõlemas tabelis paralleelselt edasi nagu tõmblukuga.
Kasutatakse: Suurte andmemahtude korral, kui andmed on juba sorditud või vajavad nagunii sortimist.

Räsühendamine (Hash Join)

Väiksemast tabelist tehakse mällu "räsitabel" (hash table). Seejärel skaneeritakse suurt tabelit ja kontrollitakse vastavust räsiväärtuse kaudu.
Parim valik meie näite puhul: Suurte sorteerimata andmete ja "=" võrdluse puhul kõige kiirem.

Samm-sammult selgitus (Logi)

> Kasuta nuppe navigeerimiseks.

Tulemustabel (Result Set)

tellimus_idklient_ideesnimisumma
Tulemused ilmuvad siia...