是否认为int
列上的非聚集索引比decimal
或datetime
列上的非聚集索引性能更好?
在某些方面:是的。
一个INT
只有4个字节-所以更多的INT
将适合在SQL Server的一个8K的页面。
DATETIME
使用8字节-因此在单个页面上存储的DATETIME
值更少,或者对于相同数量的DATETIME
,您需要更多的页面,因此您获得更多的磁盘I/O,从而降低性能。
有多少差异取决于更详细的测量,然而,对于数百万行以下的任何内容,差异很可能可以忽略不计。如果您的查询确实受益于DATETIME
列上的索引-我会毫不犹豫地添加它(再次强调:除非您正在处理数百万行表…那么你可能需要更详细的调查)