如果我在日期時間字段上具有聚集索引的SQL Server表,它在插入之前設置爲DateTime.Now(來自C#),如果索引是升序或爲了避免重組桌面而下降?SQL Server:日期時間,ASC或DESC上的聚集索引
謝謝。
如果我在日期時間字段上具有聚集索引的SQL Server表,它在插入之前設置爲DateTime.Now(來自C#),如果索引是升序或爲了避免重組桌面而下降?SQL Server:日期時間,ASC或DESC上的聚集索引
謝謝。
真的沒關係 - 但是DateTime真的保證是唯一的嗎?我會避免把聚集索引放在DateTime上 - 我會使用INT IDENTITY或BIGINT IDENTITY,並在DateTime上放置一個常規的非聚集索引(因爲這實際上並不保證它是唯一的......)
馬克
PS:就像一個主鍵,在聚集鍵應該是什麼普遍的共識是:
的組成聚集鍵(包括4字節uniqueifier)被加入到塔(S)在每個非聚集索引中每次輸入 - 所以你想保持儘可能苗條。
PS 2:聚簇鍵被添加到每個非聚簇索引,因爲這是SQL Server在非聚簇索引中找到搜索值後將檢索整行的方式。這就是數據庫中該行的「位置」,可以這麼說。因此,它應該是獨一無二的,而且應該是縮小的。
閱讀本http://www.sqlskills.com/BLOGS/KIMBERLY/post/GUIDs-as-PRIMARY-KEYs-andor-the-clustering-key.aspx
如果閱讀是常常以日期時間字段,不錯的選擇是日期和身份的複合鍵 - 按順序(日期,身份證)。
因此聚集索引需要是唯一的? – Eyvind 2009-06-25 14:27:16
如果* NOT *唯一,那麼SQL Server會自動添加一個4字節的「唯一性」 - 如果可能的話,儘量避免! – 2009-06-25 14:27:57