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

Kunci utama SQL Server di bidang datetime

Ketika Anda mengatakan tanggalnya akan unik, maksud Anda Anda berpikir mereka akan unik, atau keunikan mereka dijamin oleh pernyataan masalah? Dalam pengalaman saya, beberapa hal ternyata kurang unik dari yang dibayangkan (nomor jaminan sosial AS sebagai contoh).

Jika nilai tanggal tidak dijamin unik, Anda harus menambahkan kunci integer.

Jika nilai tanggal dijamin unik, apakah nilainya berubah? Jika mereka berubah, apakah mereka direferensikan oleh tabel lain? Jika kedua jawaban adalah "ya", Anda mungkin harus menambahkan kunci bilangan bulat.

Jika nilai tanggal dijamin unik, dan tidak berubah atau tidak direferensikan, Anda dapat menggunakannya untuk kunci. DATETIME reguler adalah 8 byte dan nilai INTEGER standar adalah 4 byte yang mungkin memiliki efek kecil pada pengindeksan. Jika nilai tanggal Anda hanya tanggal, atau hanya tepat ke menit atau kurang, dan dalam rentang yang lebih terbatas yang diizinkan oleh jenisnya, Anda dapat menggunakan SMALLDATETIME dan menurunkan nilai indeks tersebut hingga 4 byte.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mana yang lebih cepat COALESCE ATAU ISNULL?

  2. CAST(DATETIME AS DATE) melalui klausa WHERE

  3. SQL pilih rangkaian pernyataan string

  4. Baca log transaksi SQL Server

  5. Akankah SQL Server 2012 FTS memiliki dukungan asli untuk penyorotan hit?