ใน SQL Server คุณสามารถระบุคำแนะนำการเข้าร่วม:
- เข้าร่วมแฮช
- รวมเข้าด้วยกัน
- เข้าร่วมLOOP
คำจำกัดความของการเข้าร่วมทั้งสามคำจำกัดความคืออะไรและแต่ละคนควรใช้เมื่อใด
ใน SQL Server คุณสามารถระบุคำแนะนำการเข้าร่วม:
คำจำกัดความของการเข้าร่วมทั้งสามคำจำกัดความคืออะไรและแต่ละคนควรใช้เมื่อใด
คำตอบ:
จาก MSDN ในหัวข้อแนวคิดการปรับแต่งการสืบค้นขั้นสูง :
SQL Server ใช้การดำเนินการเข้าร่วมสามประเภท:
การวนซ้ำซ้อนกันเข้าร่วม
ผสานเข้าด้วยกัน
Hash เข้าร่วม
หากหนึ่งอินพุตเข้าร่วมมีขนาดเล็ก (น้อยกว่า 10 แถว) และอีกอินพุทเข้าร่วมมีขนาดใหญ่พอสมควรและจัดทำดัชนีในคอลัมน์เข้าร่วมดัชนีซ้อนซ้อนลูปดัชนีเข้าร่วมเป็นการดำเนินการเข้าร่วมที่เร็วที่สุดเนื่องจากต้องการ I / O น้อยที่สุด สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการซ้อนลูปดูการทำความเข้าใจการซ้อนลูปซ้อน
หากอินพุตเข้าร่วมทั้งสองไม่เล็ก แต่จะเรียงลำดับในคอลัมน์เข้าร่วม (ตัวอย่างเช่นหากได้รับจากการสแกนดัชนีเรียงลำดับ) การผสานการเข้าร่วมเป็นการดำเนินการเข้าร่วมที่เร็วที่สุด หากทั้งสองเข้าร่วมอินพุตมีขนาดใหญ่และทั้งสองเข้ามีขนาดใกล้เคียงกันเข้าร่วมผสานกับการเรียงลำดับก่อนหน้านี้และเข้าร่วมแฮให้ประสิทธิภาพที่คล้ายกัน อย่างไรก็ตามการดำเนินการแฮชเข้าร่วมมักเร็วกว่ามากหากขนาดอินพุตทั้งสองแตกต่างกันอย่างมีนัยสำคัญ สำหรับข้อมูลเพิ่มเติมให้ดูที่การทำความเข้าใจการผสานเข้าร่วม
การรวมแฮชสามารถประมวลผลอินพุตที่มีขนาดใหญ่ไม่เรียงลำดับและไม่มีการจัดทำดัชนีได้อย่างมีประสิทธิภาพ
แต่ฉันเชื่อว่าคุณควรเริ่มต้นด้วยหัวข้อพื้นฐานเพิ่มเติม: การปรับแต่งการค้นหาและสุดท้ายไปที่การใช้คำแนะนำการสืบค้น