Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Klucz podstawowy programu SQL Server w polu datetime

Mówiąc, że daty będą niepowtarzalne, masz na myśli myśl będą unikatowe, czy też ich wyjątkowość gwarantuje stwierdzenie problemu? Z mojego doświadczenia wynika, że ​​niektóre rzeczy okazują się znacznie mniej wyjątkowe, niż można sobie wyobrazić (przykładem są amerykańskie numery ubezpieczenia społecznego).

Jeśli wartości dat nie są gwarantowane jako unikatowe, należy dodać klucz całkowity.

Jeśli wartości dat są gwarantowane jako niepowtarzalne, czy się zmieniają? Jeśli się zmienią, czy odwołują się do nich inne tabele? Jeśli obie odpowiedzi brzmią „tak”, prawdopodobnie powinieneś dodać klucz całkowity.

Jeśli wartości dat są gwarantowane jako unikatowe i nie zmieniają się lub nie są przywoływane, możesz ich użyć jako klucza. Zwykłe wartości DATETIME mają 8 bajtów, a standardowe wartości INTEGER to 4 bajty, co może mieć niewielki wpływ na indeksowanie. Jeśli Twoje wartości dat są tylko datami lub są z dokładnością do minuty lub mniej i mieszczą się w bardziej ograniczonym zakresie dozwolonym przez typ, możesz użyć funkcji SMALLDATETIME i uzyskać te wartości indeksu do 4 bajtów.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dynamiczne tworzenie tabeli w tsql

  2. Nie można zmienić hasła sa w SQL Server 2008

  3. Zapytanie SQL działa szybciej niż procedura składowana

  4. Jak zastąpić wszystkie pola kluczy w ciągu wartościami zastępczymi z tabeli w T-SQL?

  5. Jak ustawić poniedziałek jako pierwszy dzień tygodnia w SQL Server