Frederik merangkumnya dengan baik, dan itulah yang juga diajarkan oleh Kimberly Tripp:kunci pengelompokan harus stabil (tidak pernah berubah), terus meningkat (IDENTITY INT), kecil dan unik.
Dalam skenario Anda, saya lebih suka meletakkan kunci pengelompokan pada kolom BIGINT daripada kolom VARCHAR(80).
Pertama-tama, dengan kolom BIGINT, cukup mudah untuk menerapkan keunikan (jika Anda tidak menegakkan dan menjamin keunikan sendiri, SQL Server akan menambahkan "uniquefier" 4-byte ke setiap baris Anda) dan itu BANYAK lebih kecil dari rata-rata VARCHAR(80).
Mengapa ukuran begitu penting? Kunci pengelompokan juga akan ditambahkan ke SETIAP dan setiap indeks non-cluster Anda - jadi jika Anda memiliki banyak baris dan banyak indeks non-cluster, memiliki 40-80 byte vs. 8 byte dapat dengan cepat menghasilkan BESAR perbedaan.
Juga, tip kinerja lain:untuk menghindari apa yang disebut pencarian bookmark (dari nilai dalam indeks non-cluster Anda melalui kunci pengelompokan ke halaman daun data aktual), SQL Server 2005 telah memperkenalkan gagasan "kolom yang disertakan" di indeks non-cluster Anda. Itu sangat membantu, dan sering diabaikan. Jika kueri Anda sering memerlukan bidang indeks ditambah hanya satu atau dua bidang lain dari database, pertimbangkan untuk menyertakannya untuk mencapai apa yang disebut "mencakup indeks". Sekali lagi - lihat artikel luar biasa Kimberly Tripp - dia adalah Dewi Pengindeksan SQL Server! :-) dan dia bisa menjelaskan hal itu jauh lebih baik daripada aku...
Singkatnya:letakkan kunci pengelompokan Anda di kolom kecil, stabil, dan unik - dan Anda akan melakukannya dengan baik!
Marc