Eyv*_*ind 19 sql-server clustered-index
如果我在日期时间字段上有一个带有聚簇索引的SQL Server表,那么在插入之前设置为DateTime.Now(来自C#),索引应该是升序还是降序以避免重组表?
谢谢.
mar*_*c_s 29
没关系 - 但DateTime真的保证是独一无二的吗?我会避免在一个DateTime上放置聚簇索引 - 我会使用INT IDENTITY或BIGINT IDENTITY,并在DateTime上放置一个常规的非聚集索引(因为它确实不能保证是唯一的......)
渣
PS:像主键一样,关于群集密钥的一般共识是:
构成聚簇键的列(包括该4字节唯一符)将添加到每个非聚集索引中的每个条目中 - 因此您希望尽可能保持这些列.
PS 2:将聚簇键添加到每个非聚集索引,因为这是SQL Server在非聚集索引中找到搜索值后检索整行的方式.这是数据库中行的"位置",可以这么说.因此,它应该是独特和狭窄的.
小智 5
阅读http://www.sqlskills.com/BLOGS/KIMBERLY/post/GUIDs-as-PRIMARY-KEYs-andor-the-clustering-key.aspx
如果读取频繁地基于日期时间字段,那么良好的选择是日期和身份的复合键 - 按该顺序(日期,身份).