Sebelumnya, ada non-konklusif untuk saya debat / diskusi tentang apakah (selalu) terlibat / menghindari indeks berkerumun.
Yah, saya mengerti bahwa mereka harus digunakan kadang-kadang dengan tujuan dan konteks spesifik + yang tepat.
Persyaratan Indeks Clustered Database SQL Azure :
"SQL Azure tidak mendukung tabel tanpa indeks berkerumun. Sebuah tabel harus memiliki indeks berkerumun. Jika sebuah tabel dibuat tanpa kendala berkerumun, indeks berkerumun harus dibuat sebelum operasi penyisipan diizinkan pada tabel"
tidak cocok dengan kesimpulan, alasan, dan penjelasan sebelumnya.
Apa alasannya, yang telah saya lewatkan dari penjelasan sebelumnya, tentang penerapan indeks kluster di mana-mana tanpa pengecualian?
sql-server
database-design
azure-sql-database
index
Gennady Vanin Геннадий Ванин
sumber
sumber
Jawaban:
Baca Di Dalam SQL Azure :
Diperlukan kunci Clustered sehingga tiga replika data Anda dapat disimpan dalam sinkronisasi. Tanpa kunci, mustahil untuk mengetahui baris mana yang diperbarui. Tumpukan (tabel tanpa indeks berkerumun) hanya memiliki 'kunci' fisik (fileid: pageid: slot) dan karena 3 replika dari basis data logis Anda berbagi basis data fisik dengan basis data logis lainnya, alamat fisik pada satu server tidak memiliki arti di sisi lain replika, maka tumpukan tidak mungkin direplikasi.
sumber
Azure adalah sistem terdistribusi, berbasis cloud di server jauh. Data kemungkinan akan disimpan pada banyak drive / server, dan akan sangat tidak efisien untuk melakukan ini pada heap (karena sistem perlu mengetahui mesin mana yang akan diperiksa, dan tanpa indeks berkerumun ini adalah operasi intensif sumber daya) .
Indeks berkerumun menyediakan pencarian untuk semua baris dan semua indeks lainnya di atas meja, jadi tanpa satu setiap operasi di biru akan menjadi pemindaian tabel di beberapa mesin.
sumber