4
回答
SQL Datepart(yyyy, date) 和自定义的年份列Year 的查询哪个性能最优?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

对于SQL优化方面的知识欠缺。

目前要设计一个大数据量(几千万以上)的统计方面用的数据表,通常统计要分 年份、月份、日、周、季度这几个时间属性,如果直接用Date类型,那如果要查询,就只能用DatePart函数取得日期对于的时间部分;如果不使用Date类型,将时间拆开分别用smallint表示年份、tinyint表示月、日、周、季度,分别都建立好索引,这样做相对存储的时候麻烦很多,但查询的时候,可以避免DatePart函数的运算。

实际上,执行计划并不是一直不变的,我观察过如果数据量达到非常大(100多万),无论是不适用DatePart函数,都已经变成聚集索引扫描(设置了主键为聚集索引)。

实际上观察,DatePart函数看执行计划的显示,它也可以走索引。

实际查询,消耗的时间均差不多,COUNT计算测试不使用DatePart函数执行小于1秒,使用DatePart函数的至少1秒,都测试10多次

似乎如果自己把时间部分分开存储有点傻。。。谁能给我讲讲呢?

<无标签>
举报

以下是问题补充:

  • @蓝水晶飞机 :使用SQL Server 2008,对于其它数据库不是很了解。 (1年前)
顶部