poniedziałek, 5 grudnia 2011

Operatory złączeniowe

Operatory złączeniowe

Kiedy wykorzystujemy łączenie tabel w zapytaniach (joiny) , łączenie ich może odbywać się na kilka sposobów. Poniżej ich lista i charakterystyka.

Nested loops



Działa to w oparciu o pętle zagnieżdżone. Podczas łączenia dwóch tabel bierzemy wiersz z jednej tabeli i przeszukujemy całą druga tabelę w poszukiwaniu odpowiedników. Stosowany najczęściej kiedy jedna z tabel jest mała.



Sort Merge Join



W tym rodzaju łączenia pobierane są dane z obu tabel po kawałku i sortowane po kolumnach wg których łączymy tabele. Następnie posortowane są porównywane ze sobą. Samo sortowanie jest operacją kosztową , więc taki rodzaj łączenia spotkamy rzadko. Wykorzystywany jest kiedy sortowanie i tak jest wymagane w związku z samym zapytaniem, lub przy połączeniach nierównościowych (kiedy warunkiem łączenia jest inny operator niż = ).



Hash join



Mniejsza tabela jest zamieniana w pamięci na tablicę hashową, druga jest hashowana i porównywana z pierwszą.


Cartesian Join



Join kartezjański stosowany jest kiedy połączymy dwie tabele bez podania warunku łączenia. Następuje wtedy łączenie na zasadzie „każdy z każdym”.

Brak komentarzy:

Prześlij komentarz