Một lập trình viên đang kiểm tra và so sánh cùng một ứng dụng sử dụng cùng cấu trúc cơ sở dữ liệu và cùng một dữ liệu, chỉ trong hai cơ sở dữ liệu riêng biệt, một với Oracle 8 và một với Oracle 9.
Ứng dụng chạy một truy vấn không có ORDER BY
mệnh đề.
Ông tuyên bố rằng truy vấn ORDER-BY-less sẽ trả về các hàng theo cùng một thứ tự trong cả hai cơ sở dữ liệu.
Tôi nói với anh ta rằng không có bảo hành của cùng một đơn hàng trừ khi bạn tự tin cung cấp một mệnh đề ORDER BY.
Cơ sở dữ liệu có cùng chỉ mục và khóa. Nhưng kế hoạch giải thích cho thấy rằng trong một trong các cơ sở dữ liệu, công cụ đang sử dụng khóa của một trong các bảng đã tham gia trong khi trong cơ sở dữ liệu khác, nó sử dụng cơ sở dữ liệu khác.
Anh ta khẳng định rằng hai môi trường DB không bằng nhau, điều này là do chúng có số liệu thống kê khác nhau, các công cụ rdbms khác nhau, v.v., nhưng không phải vì tôi thất bại trong việc sao chép mọi chỉ mục mà cơ sở dữ liệu gốc có.
Tôi nói với anh ta rằng anh ta phải tự hào cung cấp một ORDER BY
điều khoản nếu thứ tự thực sự quan trọng.
Câu hỏi
Vì vậy, tôi có thể giải thích anh ta tốt hơn:
Theo thứ tự nào một truy vấn tìm nạp các hàng khi bạn không khám phá cung cấp mệnh đề ORDER BY và tại sao truy vấn đó không trả về các hàng theo cùng một thứ tự?