ลำดับของคอลัมน์ในดัชนี columnstore สำคัญหรือไม่


12

ฉันมีตารางที่มี ~ 200 ล้านแถวและอีก 15 คอลัมน์ในนั้น ฉันวางแผนที่จะสร้างCOLUMNSTOREดัชนีบนโต๊ะของฉัน

จะมีการเปลี่ยนแปลงใด ๆ เกี่ยวกับประสิทธิภาพขึ้นอยู่กับลำดับของคอลัมน์ที่ฉันใช้ในดัชนี columnstore หรือไม่ ถ้าใช่ตรรกะอะไรที่อยู่เบื้องหลัง


คำตอบ:


15

ไม่คำสั่งไม่สำคัญ แต่ละคอลัมน์ถือว่าเป็นเอกเทศ

จากทีม SQL Server (เน้นการเพิ่ม):

โดยทั่วไปแล้วคุณจะต้องใส่คอลัมน์ทั้งหมดในตารางของคุณลงในดัชนี columnstore ไม่สำคัญว่าคุณจะเรียงลำดับรายการใดในคอลัมน์เพราะดัชนี columnstore ไม่มีคีย์เหมือนกับที่ดัชนี B-tree ทำ ภายในข้อมูลจะถูกจัดลำดับใหม่โดยอัตโนมัติเพื่อให้ได้การบีบอัดที่ดีที่สุด


มีแนวคิดของคอลัมน์ความหนาแน่นสูงควรเป็นอันดับแรกในการสั่งซื้อและคอลัมน์ความหนาแน่นต่ำควรจะสุดท้ายในการสั่งซื้อ คอลัมน์ที่ใช้บ่อยควรอยู่ในลำดับแรก
Vinay Kumar Chella

1
ไม่ใช่ที่ฉันรู้ - ดัชนี columnstore ไม่ทำงานเช่นดัชนีต้นไม้ B แบบดั้งเดิม
Aaron Bertrand

ตกลง. ฉันได้ยินในการประชุม แต่ไม่พบแหล่งที่มาสำหรับมัน เราจะรอความคิดเห็นเพิ่มเติม ...
Vinay Kumar Chella

2

คำสั่งซื้อไม่สำคัญอะไรจะเกิดอะไรขึ้นถ้าคุณควรรวมคอลัมน์ทั้งหมดจากตารางฐานในดัชนี columnstore - เพิ่มเติมผ่านคำตอบก่อนหน้าของฉันสำหรับคำถามนี้ที่นี่


0

ใน SQL Server 2012-2016 คุณมีแนวคิดเกี่ยวกับการกำจัดกลุ่ม ( http://social.technet.microsoft.com/wiki/contents/articles/5651.understanding-segment-elimination.aspx ) และคุณสามารถบังคับลำดับของ อย่างน้อย 1 คอลัมน์ (บวก 1 พิเศษภายในแต่ละพาร์ติชัน)

พิจารณาบทความต่อไปนี้ที่อธิบายการโหลดข้อมูลเพื่อการกำจัดเซกเมนต์ที่ดีขึ้น : การโหลดข้อมูลเพื่อการกำจัดเซ็กเมนต์ที่ดีขึ้น


0

มีคำตอบที่ยอดเยี่ยมโดย Aaron ในปี 2012 เพื่อขยายการ ...

ด้วย SQL 2014+ คุณมีดัชนี columnstore คลัสเตอร์ที่พร้อมใช้งาน เมื่อสร้างดัชนี columnstore แบบคลัสเตอร์จะไม่มีการเลือกคอลัมน์หรือตัวเลือกคำสั่งซื้อ อธิบายคอลัมน์ Columnstore แล้ว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.