Teradata - เข้าร่วมกลยุทธ์

บทนี้จะกล่าวถึงกลยุทธ์การเข้าร่วมต่างๆที่มีอยู่ใน Teradata

เข้าร่วมวิธีการ

Teradata ใช้วิธีการเข้าร่วมที่แตกต่างกันเพื่อดำเนินการเข้าร่วม บางส่วนของวิธีการเข้าร่วมที่ใช้กันทั่วไป ได้แก่ -

  • รวมเข้าร่วม
  • การเข้าร่วมที่ซ้อนกัน
  • เข้าร่วมผลิตภัณฑ์

รวมเข้าร่วม

เมธอด Merge Join เกิดขึ้นเมื่อการเข้าร่วมเป็นไปตามเงื่อนไขความเท่าเทียมกัน Merge Join กำหนดให้แถวการรวมอยู่ใน AMP เดียวกัน แถวจะรวมตามแฮชแถว Merge Join ใช้กลยุทธ์การเข้าร่วมที่แตกต่างกันเพื่อนำแถวไปยัง AMP เดียวกัน

กลยุทธ์ # 1

หากคอลัมน์การรวมเป็นดัชนีหลักของตารางที่เกี่ยวข้องแสดงว่าแถวการรวมอยู่ใน AMP เดียวกันแล้ว ในกรณีนี้ไม่จำเป็นต้องมีการแจกจ่าย

พิจารณาตารางพนักงานและเงินเดือนต่อไปนี้

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

เมื่อสองตารางนี้เข้าร่วมในคอลัมน์ EmployeeNo จะไม่มีการแจกจ่ายซ้ำเนื่องจาก EmployeeNo เป็นดัชนีหลักของทั้งสองตารางที่กำลังถูกรวมเข้าด้วยกัน

กลยุทธ์ # 2

พิจารณาตารางพนักงานและแผนกต่อไปนี้

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

หากตารางทั้งสองนี้รวมอยู่ในคอลัมน์ DeparmentNo ดังนั้นแถวจะต้องถูกแจกจ่ายใหม่เนื่องจาก DepartmentNo เป็นดัชนีหลักในตารางเดียวและไม่ใช่ดัชนีหลักในตารางอื่น ในสถานการณ์นี้การรวมแถวอาจไม่อยู่ใน AMP เดียวกัน ในกรณีเช่นนี้ Teradata อาจแจกจ่ายตารางพนักงานในคอลัมน์ DepartmentNo อีกครั้ง

กลยุทธ์ # 3

สำหรับตารางพนักงานและแผนกข้างต้น Teradata อาจทำซ้ำตาราง Department ใน AMP ทั้งหมดหากขนาดของตาราง Department มีขนาดเล็ก

การเข้าร่วมที่ซ้อนกัน

Nested Join ไม่ได้ใช้ AMP ทั้งหมด เพื่อให้การเข้าร่วมแบบซ้อนเกิดขึ้นเงื่อนไขข้อใดข้อหนึ่งควรมีความเท่าเทียมกันในดัชนีหลักที่ไม่ซ้ำกันของตารางหนึ่งจากนั้นจึงรวมคอลัมน์นี้เข้ากับดัชนีใด ๆ ในตารางอื่น

ในสถานการณ์สมมตินี้ระบบจะดึงข้อมูลหนึ่งแถวโดยใช้ดัชนีหลักที่ไม่ซ้ำกันของตารางหนึ่งและใช้แฮชแถวนั้นเพื่อดึงข้อมูลระเบียนที่ตรงกันจากตารางอื่น การเข้าร่วมแบบซ้อนเป็นวิธีการเข้าร่วมที่มีประสิทธิภาพมากที่สุด

เข้าร่วมผลิตภัณฑ์

Product Join เปรียบเทียบแถวที่มีคุณสมบัติแต่ละแถวจากตารางหนึ่งกับแต่ละแถวที่มีคุณสมบัติจากตารางอื่น การเข้าร่วมผลิตภัณฑ์อาจเกิดขึ้นเนื่องจากปัจจัยต่อไปนี้ -

  • สภาพหายไปไหน.
  • เงื่อนไขการเข้าร่วมไม่ได้ขึ้นอยู่กับเงื่อนไขความเท่าเทียมกัน
  • ชื่อแทนตารางไม่ถูกต้อง
  • เงื่อนไขการเข้าร่วมหลายรายการ