Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apakah indeks berkerumun harus unik?

Mereka tidak memiliki untuk menjadi unik tetapi tentu saja dianjurkan.
Saya belum menemukan skenario di mana saya ingin membuat CI pada kolom yang tidak unik.

Apa yang terjadi jika Anda membuat CI pada kolom yang tidak unik

Apakah ini menyebabkan kinerja buruk?

Menambahkan pengunik tentu menambah beberapa overhead dalam menghitung dan menyimpannya.
Jika overhead ini akan terlihat tergantung pada beberapa faktor.

  • Berapa banyak data yang ada di tabel.
  • Berapa tarif penyisipan.
  • Seberapa sering CI digunakan dalam pemilihan (bila tidak ada indeks penutup, hampir selalu).

Sunting
seperti yang ditunjukkan oleh Remus dalam komentar, memang ada kasus penggunaan di mana membuat CI non-unik akan menjadi pilihan yang masuk akal. Saya tidak mengalami salah satu dari skenario itu hanya menunjukkan kurangnya eksposur atau kompetensi saya sendiri (pilih pilihan Anda).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menemukan Pengaturan ANSI_NULLS Database di SQL Server (T-SQL)

  2. Login gagal untuk pengguna (Microsoft SQL Server, Error:18456) SQL Server 2005

  3. Cara menyimpan berbagai jenis dokumen

  4. SQL Server:Tidak dapat memasukkan nilai eksplisit ke dalam kolom stempel waktu

  5. Tidak dapat menggunakan nama Alias ​​​​dalam klausa WHERE tetapi dapat di ORDER BY