Apakah indeks non-cluster membuat jaminan tentang urutan baris?

9

Saya memiliki pengembang yang ingin, ketika melakukan pernyataan pilih tanpa urutan, baris dalam tabel agar sesuai dengan urutan yang dimasukkan. Pengembang menyarankan perubahan dari indeks yang berkerumun menjadi tidak berkerumun.

Dengan mengubah indeks dari clustered ke non-clustered, apakah ini membuat jaminan tentang urutan di mana baris akan muncul dalam tabel?

Pertanyaan ini sebagian besar karena keingintahuan saya; Saya akan menyarankan menggunakan kolom identitas saja, tetapi permintaan ini membuat saya berpikir. Stempel waktu dapat digunakan tetapi ada kemungkinan baris dapat dimasukkan secara bersamaan.

Terima kasih sebelumnya atas bantuan Anda.

630
sumber

Jawaban:

18

Sama sekali tidak - tanpa ORDER BY pesanan baris TIDAK PERNAH dijamin.

Rencana eksekusi yang dipilih MUNGKIN menghasilkan dalam urutan yang diinginkan, tetapi jika demikian, itu adalah kebetulan.

Urutan penyimpanan vs. Urutan Hasil DBA.SE utas

George. Palacios
sumber
6

Tidak benar, tetapi anggap itu benar. Jika baris sudah dipesan oleh indeks, biaya pesanan akan sangat rendah, jadi tidak ada alasan untuk tidak melakukannya.

Lennart
sumber