2009-06-25 97 views

回答

27

真的沒關係 - 但是DateTime真的保證是唯一的嗎?我會避免把聚集索引放在DateTime上 - 我會使用INT IDENTITY或BIGINT IDENTITY,並在DateTime上放置一個常規的非聚集索引(因爲這實際上並不保證它是唯一的......)

馬克

PS:就像一個主鍵,在聚集鍵應該是什麼普遍的共識是:

  • 獨特(否則SQL服務器「uniquify」,加入4-將它字節uniqueifier)
  • as 儘可能
  • 靜態(永遠不變)
  • 不斷增加

的組成聚集鍵(包括4字節uniqueifier)被加入到塔(S)在每個非聚集索引中每次輸入 - 所以你想保持儘可能苗條。

PS 2:聚簇鍵被添加到每個非聚簇索引,因爲這是SQL Server在非聚簇索引中找到搜索值後將檢索整行的方式。這就是數據庫中該行的「位置」,可以這麼說。因此,它應該是獨一無二的,而且應該是縮小的

+0

因此聚集索引需要是唯一的? – Eyvind 2009-06-25 14:27:16

+4

如果* NOT *唯一,那麼SQL Server會自動添加一個4字節的「唯一性」 - 如果可能的話,儘量避免! – 2009-06-25 14:27:57