Udostępnij za pośrednictwem


Understanding Merge Joins

łączyć korespondencji seryjnej wymaga zarówno dane wejściowe mają być sortowane w kolumnach korespondencji seryjnej, które są zdefiniowane przez klauzule równość (ON) predykatu łączyć.optymalizator kwerendy zazwyczaj skanowanie indeksu, jeśli taki istnieje na prawidłowe zestaw kolumn lub umieszcza on operator sortowania poniżej łączyć korespondencji seryjnej.W rzadkich przypadkach może być wiele klauzul równości, ale kolumn korespondencji seryjnej są pobierane z tylko niektóre z klauzul dostępne równości.

Ponieważ każda dane wejściowe są sortowane, Scalanie łączyć operator wiersza są pobierane z każdego danych wejściowych i porównuje je.Na przykład dla operacji łączyć wewnętrzne, wiersze są zwracane, jeśli są równe.Jeśli nie są równe, wartość dolnego wiersza zostaną odrzucone i nowy wiersz jest uzyskiwany z wejścia tego.Proces ten powtarza się, dopóki nie zostaną przetworzone wszystkie wiersze.

Operacja przyłączenia korespondencji seryjnej może być regularne lub operacji wiele do wielu.łączyć wiele do wielu scalania używa tabela tymczasowa w celu przechowywania wierszy.Jeśli istnieją zduplikowane wartości z każdego wejścia, jednego z wejść trzeba przewinąć na początek duplikaty każdy duplikat z innych danych wejściowych jest przetwarzany.

Jeżeli pozostały predykat, predykat końcowej oceny wszystkie wiersze, które spełniają predykat korespondencji seryjnej i zwracane są tylko te wiersze, które spełniają to.

łączyć korespondencji seryjnej, sam jest bardzo szybko, ale może to być jest kosztowna wyborem, jeśli operacje sortowania są wymagane.Wolumin danych jest duży, można otrzymać żądane dane presorted z istniejące indeksy B-drzewo łączyć korespondencji seryjnej jest jednak często najszybszy algorytm dostępne łączyć.