Anda harus PASTI memperkenalkan pengganti INT IDENTITY()
kunci utama!!INT sudah memberi Anda potensi hingga 2 miliar baris - bukankah itu cukup??
Kunci utama/kunci berkerumun ini pada SQL Server akan berukuran hingga 64 byte (bukan 4, untuk INT) - yang akan membuat indeks berkerumun Anda DAN semua indeks yang tidak berkerumun membengkak tanpa bisa dikenali. Seluruh kunci pengelompokan (semua 8 kolom Anda) akan disertakan pada setiap halaman dari setiap indeks yang tidak berkerumun di tabel itu - tentu saja membuang banyak ruang.
Jadi pada tabel indeks mana pun, Anda akan memiliki entri hingga 16 kali lebih banyak dengan kunci berkerumun INT pengganti - itu berarti lebih sedikit I/O, lebih sedikit waktu yang terbuang untuk membaca halaman indeks.
Dan bayangkan mencoba membuat hubungan kunci asing ke tabel itu.... tabel anak mana pun harus memiliki 8 kolom semua dari kunci utama Anda sebagai kolom kunci asing, dan tentukan semua 8 kolom di setiap gabungan - sungguh mimpi buruk!!
Pada 78 juta baris, bahkan hanya mengubah kunci pengelompokan ke INT IDENTITY akan menghemat hingga 60 byte per baris - itu saja akan menghasilkan ruang disk hingga 4 GByte (dan penggunaan RAM di server Anda). Dan itu bahkan belum mulai menghitung penghematan pada indeks non-clustered.......
Dan tentu saja, ya, saya juga akan mengubah VARCHAR(10) menjadi INT atau BIGINT - jika itu angka, buat tipe bidang numerik - tidak ada gunanya meninggalkannya di VARCHAR(10), sungguh. Tapi itu saja tidak akan membuat perbedaan besar dalam hal kecepatan atau kinerja - itu hanya membuat bekerja dengan data menjadi lebih mudah (tidak harus selalu beralih ke tipe numerik ketika misalnya membandingkan nilai dan sebagainya).
Marc