Teradata - Stratégies JOIN

Ce chapitre présente les différentes stratégies JOIN disponibles dans Teradata.

Méthodes de jointure

Teradata utilise différentes méthodes de jointure pour effectuer des opérations de jointure. Certaines des méthodes de jointure couramment utilisées sont -

  • Fusionner la jointure
  • Jointure imbriquée
  • Rejoindre le produit

Fusionner la jointure

La méthode Merge Join a lieu lorsque la jointure est basée sur la condition d'égalité. La jointure par fusion nécessite que les lignes de jointure soient sur le même AMP. Les lignes sont jointes en fonction de leur hachage de ligne. La jointure de fusion utilise différentes stratégies de jointure pour amener les lignes vers le même AMP.

Stratégie n ° 1

Si les colonnes de jointure sont les index principaux des tables correspondantes, les lignes de jointure se trouvent déjà sur le même AMP. Dans ce cas, aucune distribution n'est requise.

Considérez les tableaux des employés et des salaires suivants.

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);

Lorsque ces deux tables sont jointes sur la colonne EmployeeNo, aucune redistribution n'a lieu puisque EmployeeNo est l'index principal des deux tables qui sont jointes.

Stratégie n ° 2

Considérez les tableaux d'employés et de services suivants.

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 );

Si ces deux tables sont jointes sur la colonne DeparmentNo, les lignes doivent être redistribuées car DepartmentNo est un index primaire dans une table et un index non primaire dans une autre table. Dans ce scénario, joindre des lignes peut ne pas être sur le même AMP. Dans ce cas, Teradata peut redistribuer la table des employés sur la colonne DepartmentNo.

Stratégie n ° 3

Pour les tables Employé et Département ci-dessus, Teradata peut dupliquer la table Département sur toutes les SAP, si la taille de la table Département est petite.

Jointure imbriquée

La jointure imbriquée n'utilise pas tous les AMP. Pour que la jointure imbriquée ait lieu, l'une des conditions doit être l'égalité sur l'index primaire unique d'une table, puis la jonction de cette colonne à n'importe quel index de l'autre table.

Dans ce scénario, le système récupérera la ligne à l'aide de l'index principal unique d'une table et utilisera ce hachage de ligne pour récupérer les enregistrements correspondants à partir d'une autre table. La jointure imbriquée est la plus efficace de toutes les méthodes de jointure.

Rejoindre le produit

Product Join compare chaque ligne éligible d'une table avec chaque ligne éligible d'une autre table. La jonction de produit peut avoir lieu en raison de certains des facteurs suivants -

  • Où la condition est manquante.
  • La condition de jointure n'est pas basée sur une condition d'égalité.
  • Les alias de table ne sont pas corrects.
  • Conditions de jointure multiples.