在SQL 2005中,按日期时间或按int排序是否更快?

时间:2010-03-02 19:39:28

标签: sql-server-2005

如果按int排序更快,使用按int排序的功能按DateTime对表进行排序的技巧是什么?

5 个答案:

答案 0 :(得分:1)

假设所有其他事情都相同(两列都被类似地索引或没有索引),理论上排序int列应该更快,因为它们更小(4个字节对8个字节),这可以使个别比较更快。

答案 1 :(得分:1)

如果您正在尝试优化日期/时间排序,这真的很重要,您可能需要考虑smalldatetime类型。

这是一个32位数字,因此它的排序速度与int一样快,但与datetime相比,可接受日期的范围较小(1900-2079)并四舍五入到最接近的分钟

答案 2 :(得分:0)

你到底要问这个问题?

如果您为datetime建立索引,那么您应该从列中获得有效的排序。

更好的是,将datetime字段设置为表的聚簇索引,这应该是最有效的方法。

答案 3 :(得分:0)

您是否尝试通过一些技巧来提高对Datetime字段进行排序的性能?如果是这样,我会让SQL Server自己进行优化,并保持代码清晰,易于阅读。在日期时间字段上有一个索引。

答案 4 :(得分:0)

int更快,因为您必须更少地点击硬盘驱动器以从中提取数据以进行排序。整数也小于日期时间。

在星型模式中,通常使用整数来存储指向另一个具有实际日期时间的表的指针。当日期时间存储在另一个表上并且还将日期部分(如DayOfYear或Hour或Second)分解为单个列时,这也很有用。然后可以对这些列进行索引,以提高对dateparts的查询的性能。