Satu programmer sedang menguji dan membandingkan aplikasi yang sama yang menggunakan struktur database yang sama, dan data yang sama, hanya dalam dua database terpisah, satu dengan Oracle 8 dan satu dengan Oracle 9.
Aplikasi menjalankan kueri tanpa ORDER BY
klausa.
Dia mengklaim bahwa permintaan ORDER-BY-less harus mengembalikan baris dalam urutan yang sama di kedua database.
Saya katakan kepadanya bahwa tidak ada jaminan untuk urutan baris yang sama kecuali Anda secara eksplisit memberikan klausa ORDER BY.
Basis data memiliki indeks dan kunci yang sama. Tetapi rencana menjelaskan menunjukkan bahwa di salah satu database mesin menggunakan kunci dari salah satu tabel yang digabungkan sedangkan di database lain itu menggunakan yang lain.
Dia menyatakan bahwa kedua lingkungan DB tidak sama, yang karena mereka memiliki statistik yang berbeda, mesin rdbms yang berbeda, dll, tetapi bukan karena saya gagal mereplikasi setiap indeks yang dimiliki database asli.
Saya mengatakan kepadanya bahwa dia harus jelas memberikan ORDER BY
klausa jika urutannya benar-benar penting.
Pertanyaan
Jadi saya bisa menjelaskannya dengan lebih baik:
Dalam urutan apa kueri mengambil baris ketika Anda tidak menjelaskan menyediakan klausa ORDER BY, dan mengapa kueri itu tidak mengembalikan baris dalam urutan yang sama?