Teradata - DOŁĄCZ strategie

W tym rozdziale omówiono różne strategie JOIN dostępne w Teradata.

Połącz metody

Teradata używa różnych metod łączenia do wykonywania operacji łączenia. Niektóre z powszechnie używanych metod łączenia to -

  • Połącz Połącz
  • Połączenie zagnieżdżone
  • Dołącz produkt

Połącz Połącz

Metoda Merge Join ma miejsce, gdy sprzężenie jest oparte na warunku równości. Funkcja Merge Join wymaga, aby łączące się wiersze znajdowały się na tej samej stronie AMP. Wiersze są łączone na podstawie ich wartości skrótu. Funkcja Merge Join wykorzystuje różne strategie łączenia, aby przenieść wiersze do tej samej strony AMP.

Strategia nr 1

Jeśli kolumny łączenia są głównymi indeksami odpowiednich tabel, to łączące się wiersze znajdują się już w tym samym AMP. W takim przypadku dystrybucja nie jest wymagana.

Weź pod uwagę następujące tabele pracowników i wynagrodzeń.

CREATE SET TABLE EMPLOYEE,FALLBACK ( 
   EmployeeNo INTEGER, 
   FirstName VARCHAR(30) , 
   LastName VARCHAR(30) , 
   DOB DATE FORMAT 'YYYY-MM-DD', 
   JoinedDate DATE FORMAT 'YYYY-MM-DD', 
   DepartmentNo BYTEINT 
) 
UNIQUE PRIMARY INDEX ( EmployeeNo );
CREATE SET TABLE Salary ( 
   EmployeeNo INTEGER, 
   Gross INTEGER,  
   Deduction INTEGER, 
   NetPay INTEGER 
) 
UNIQUE PRIMARY INDEX(EmployeeNo);

Gdy te dwie tabele są połączone w kolumnie EmployeeNo, redystrybucja nie ma miejsca, ponieważ EmployeeNo jest głównym indeksem obu tabel, które są łączone.

Strategia nr 2

Rozważ poniższe tabele pracowników i działów.

CREATE SET TABLE EMPLOYEE,FALLBACK (
   EmployeeNo INTEGER, 
   FirstName VARCHAR(30) , 
   LastName VARCHAR(30) , 
   DOB DATE FORMAT 'YYYY-MM-DD', 
   JoinedDate DATE FORMAT 'YYYY-MM-DD', 
   DepartmentNo BYTEINT 
) 
UNIQUE PRIMARY INDEX ( EmployeeNo );
CREATE SET TABLE DEPARTMENT,FALLBACK ( 
   DepartmentNo BYTEINT, 
   DepartmentName CHAR(15) 
) 
UNIQUE PRIMARY INDEX ( DepartmentNo );

Jeśli te dwie tabele są połączone w kolumnie DeparmentNo, wiersze muszą zostać ponownie rozłożone, ponieważ DepartmentNo jest indeksem podstawowym w jednej tabeli i indeksem innym niż podstawowy w innej tabeli. W tym scenariuszu łączenie wierszy może nie znajdować się na tej samej stronie AMP. W takim przypadku Teradata może redystrybuować tabelę pracowników w kolumnie DepartmentNo.

Strategia nr 3

W przypadku powyższych tabel pracowników i działów Teradata może powielić tabelę działów na wszystkich AMP, jeśli rozmiar tabeli działów jest mały.

Połączenie zagnieżdżone

Zagnieżdżone łączenie nie wykorzystuje wszystkich stron AMP. Aby zagnieżdżone sprzężenie miało miejsce, jednym z warunków powinna być równość w unikalnym indeksie podstawowym jednej tabeli, a następnie połączenie tej kolumny z dowolnym indeksem w drugiej tabeli.

W tym scenariuszu system pobierze jeden wiersz przy użyciu Unique Primary indeksu jednej tabeli i użyje tego skrótu wiersza do pobrania pasujących rekordów z innej tabeli. Łączenie zagnieżdżone jest najbardziej wydajną ze wszystkich metod łączenia.

Dołącz produkt

Łączenie produktu porównuje każdy kwalifikujący się wiersz z jednej tabeli z każdym kwalifikującym się wierszem z innej tabeli. Dołączenie produktu może nastąpić z powodu niektórych z następujących czynników -

  • Gdzie brakuje warunku.
  • Warunek łączenia nie jest oparty na warunku równości.
  • Aliasy tabel są nieprawidłowe.
  • Wiele warunków łączenia.