Saya baru-baru ini berdiskusi dengan seorang kolega yang berusaha untuk menghapus pesanan dengan klausa dari permintaan produksi karena pesanan dengan kolom sama dengan kunci utama .
Setelah diskusi panjang di mana saya mencoba menjelaskan bahwa dia tidak dapat menjamin pemesanan berdasarkan kunci utama kesimpulan akhir adalah bahwa dia tidak akan mendorong permintaan MSSQL untuk diubah.
Tapi dia masih akan mengubah permintaan DB2.
Saya tidak bisa segera menemukan artikel yang membuktikan bahwa DB2 memesan dengan kunci utama, dan saat ini saya bertanya-tanya apakah itu benar atau tidak.
Jadi pertanyaan saya adalah, bagaimana cara memesan permintaan jika tidak ada pesanan dengan klausa DB2? Apakah menggunakan kunci utama?
Bagaimana Anda bisa menjamin data keluar dipesan dengan benar, tanpa pesanan dengan klausa, dalam sistem paralel?
Seperti yang ditunjukkan dalam jawaban ypercube, ketika tidak ada
ORDER BY
klausa, tidak ada urutan yang ditentukan .Apa yang ingin saya tambahkan adalah bahwa penting untuk menyadari bahwa SQL sangat abstraksi, itu tidak menentukan langkah demi langkah apa yang harus dilakukan DBMS tetapi lebih menentukan persyaratan Anda dari hasil akhir.
Ini menyiratkan bahwa jika data sudah dicari dengan cara yang memastikan urutan yang benar, ini karena DBMS memutuskan strategi seperti itu dan kemudian akan tahu bahwa tidak ada pekerjaan penyortiran tambahan yang diperlukan untuk memenuhi persyaratan
ORDER BY
klausa. .Di sisi lain, jika Anda tidak menentukan bahwa pesanan itu penting bagi Anda (meskipun sebenarnya?), DBMS akan mempertimbangkan ini dan jika ia menemukan strategi berbeda yang lebih efisien untuk menemukan data yang tepat di beberapa pesanan lain akan memanfaatkan fakta bahwa Anda tampaknya tidak peduli dengan pesanan. (Strategi yang dipilih bisa sangat berubah dari waktu ke waktu juga, berdasarkan peningkatan jumlah data dalam tabel yang relevan, tambalan perangkat lunak, dll.)
Yaitu, menghapus
ORDER BY
klausa memiliki sangat sedikit terbalik (ukuran permintaan sedikit lebih kecil) tetapi berpotensi downside besar jika pesanan sebenarnya penting. Terutama, karena ini bisa sangat baik bekerja dengan dataset uji dan melewati pengujian penerimaan hanya untuk menyebabkan masalah serius di telepon.sumber