Saya telah mencari menggunakan Indexed Views untuk meningkatkan kinerja pada beberapa pandangan kami yang paling umum digunakan.
Namun Indexed Views tidak mendukung indeks cluster tidak unik yang sedikit bertentangan dengan prioritas yang ditetapkan oleh sisa struktur database.
Sebagai contoh, berikut adalah versi sederhana dari beberapa tabel kami.
-Groups-
Group ID GroupName
-Users-
UserKey UserName FullName GroupID
Indeks berada di Groups.GroupID (Non-clustered) dan Users.GroupID (Clustered). Kunci yang dikelompokkan berada di GroupID di tabel Users sebagai rentang pengguna yang paling umum diambil. Jelas Anda akan memiliki banyak pengguna per grup, jadi indeks berkerumun ini tidak unik.
Ini membuat saya sedikit tidak yakin tentang bagaimana mengikuti prioritas ini ketika mengindeks pandangan saya seperti contoh ini, karena saya tidak dapat memiliki indeks cluster yang tidak unik.
ConsumableID ConsumableVariantID AllowThresholdOverwrite FullPath GroupID ManufacturerID Type ModelID
101 29 1 0.1.2.4. 4 3 3 2
Pada kenyataannya, satu-satunya nilai pada View ini yang selalu unik adalah kolom ConsumableID, jadi saya tidak punya banyak pilihan untuk menempatkan indeks saya di mana.
Mengapa Tampilan tidak mengizinkan indeks cluster non-unik ketika tabel biasa melakukannya?
(GroupID, UserID)
. Jangan membatasi diri Anda pada satu kolom untuk kunci. 2 - Saya membayangkan batasan untuk tampilan adalah karena ini adalah objek data tambahan yang harus memiliki baris yang mudah diikat ke indeks NC. Untuk sebuah tabel, kunci CI non-unik akan ditambahkan int untuk itu, tapi saya pikir itu akan lebih menantang dengan tampilan yang diindeks karena itu bukan tabel yang sebenarnya tetapi perlu MEMILIH tabel yang sebenarnya.