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 เปรียบเทียบแถวที่มีคุณสมบัติแต่ละแถวจากตารางหนึ่งกับแต่ละแถวที่มีคุณสมบัติจากตารางอื่น การเข้าร่วมผลิตภัณฑ์อาจเกิดขึ้นเนื่องจากปัจจัยต่อไปนี้ -
- สภาพหายไปไหน.
- เงื่อนไขการเข้าร่วมไม่ได้ขึ้นอยู่กับเงื่อนไขความเท่าเทียมกัน
- ชื่อแทนตารางไม่ถูกต้อง
- เงื่อนไขการเข้าร่วมหลายรายการ