โปรแกรมเมอร์คนหนึ่งกำลังทดสอบและเปรียบเทียบแอปพลิเคชันเดียวกันซึ่งใช้โครงสร้างฐานข้อมูลเดียวกันและข้อมูลเดียวกันเฉพาะในฐานข้อมูลที่แยกกันสองแห่งหนึ่งแห่งคือ Oracle 8 และอีกแห่งหนึ่งกับ Oracle 9
แอปรันคิวรีโดยไม่มี ORDER BY
ส่วนคำสั่ง
เขาอ้างว่าแบบสอบถาม ORDER-BY-less ควรส่งคืนแถวตามลำดับเดียวกันในฐานข้อมูลทั้งสอง
ฉันบอกเขาว่าไม่มีการรับประกันของคำสั่งแถวเดียวกันเว้นแต่ว่าคุณจะอธิบายคำสั่ง ORDER BY
ฐานข้อมูลมีดัชนีและคีย์เหมือนกัน แต่แผนอธิบายแสดงให้เห็นว่าในฐานข้อมูลหนึ่งเอ็นจินกำลังใช้คีย์ของหนึ่งในตารางที่เข้าร่วมขณะที่ในอีกฐานข้อมูลหนึ่งกำลังใช้ของอีกอัน
เขายืนยันว่าสภาพแวดล้อมฐานข้อมูลทั้งสองนั้นไม่เท่ากันซึ่งเป็นเพราะพวกเขามีสถิติที่แตกต่างกันเครื่องยนต์ rdbms ที่แตกต่างกัน ฯลฯ แต่ไม่ใช่เพราะฉันไม่สามารถทำซ้ำทุกดัชนีที่ฐานข้อมูลเดิมมี
ฉันบอกเขาว่าเขาต้องอธิบายให้ORDER BY
ประโยคถ้าคำสั่งนั้นสำคัญจริงๆ
คำถาม
ดังนั้นฉันสามารถอธิบายเขาได้ดีกว่า:
แบบสอบถามดึงข้อมูลแถวใดเมื่อคุณไม่อธิบายให้เรียงลำดับ ORDER BY และทำไมแบบสอบถามนั้นไม่ส่งคืนแถวในลำดับเดียวกัน