对于大型数据集的查询,日期类型是不是比日期时间更高效?
Posted
技术标签:
【中文标题】对于大型数据集的查询,日期类型是不是比日期时间更高效?【英文标题】:Is date type more performant than datetime for queries on large datasets?对于大型数据集的查询,日期类型是否比日期时间更高效? 【发布时间】:2016-03-19 18:33:32 【问题描述】:我正在存储日历事件日期,包括重复事件。桌子可能会变得很大。我的大多数查询都是针对一个月的范围(即 eventstart >= '1/1/2001' 和 eventstop
如果我查询日期列和日期时间列,我会在范围查询中获得更好的性能吗?
【问题讨论】:
我不知道,但我会说是的,因为与datetime
的 8 个字节相比,它只有 3 个字节。只是为了记录,你还有smalldatetime
,它是 4 个字节,这可能是一个更公平的比较。
此外,您的查询将变得更加正确。在您的示例中,where eventstart >= '1/1/2001' and eventstop <= '1/31/2001'
与 datetime
类型您可能会错过 1 月 31 日上午 10 点的事件,例如,因为您的范围仅在 1 月 31 日早上的午夜前结束。如果它是 date
列,您的查询将始终选择一月份的任何事件。因此,如果您不需要存储时间,date
类型除了速度和存储要求更小之外还有其他优势。
@Andrew,smalldatetime 不是 ANSI 标准,建议不要使用它。 msdn.microsoft.com/en-us/library/ms182418.aspx
正确定义的索引将比datetime
或date
为您提供更多帮助
【参考方案1】:
规则 1) 始终使用能够容纳最大可能值的最小数据大小。
http://www.sql-server-performance.com/2007/datatypes/
【讨论】:
微软建议不要再使用 smalldatetime。 msdn.microsoft.com/en-us/library/ms182418.aspx 另外,问题是日期或日期时间。除了你,没有人提到小约会时间。但是,嘿,谢谢你的反对票。 抱歉,误会了。 如果你接受我的编辑或者你自己编辑,我会恢复它。 先生,不要误会我的意思。网站不允许我还原 dv,它说在有人编辑答案之前我无法还原。请编辑答案,我会将其还原。以上是关于对于大型数据集的查询,日期类型是不是比日期时间更高效?的主要内容,如果未能解决你的问题,请参考以下文章