ดัชนีที่ไม่ทำคลัสเตอร์รับประกันเกี่ยวกับลำดับแถวหรือไม่?


9

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

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

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

ขอบคุณล่วงหน้าสำหรับความช่วยเหลือของ.

คำตอบ:


30

ORDER BYหากคุณจำเป็นต้องสั่งซื้อในผลการค้นหาของคุณใส่ใน มันง่ายมาก

ตรวจสอบบทความนี้จากสถาปนิก SQL Server Conor Cunningham ซึ่งค่อนข้างรวมหัวข้อนี้:


18

ไม่แน่นอน - โดยไม่มีคำสั่งแถวตามลำดับไม่รับประกัน

แผนการดำเนินการที่เลือกไว้อาจส่งผลให้ต้องการตามลำดับ แต่ถ้าเป็นเช่นนั้นก็เป็นไปโดยบังเอิญ

การจัดเก็บข้อมูลการสั่งซื้อ VS ผลการสั่งซื้อด้าย DBA.SE


6

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

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