请教大家一个问题: 我有一张海量数据表(字段在80个左右,记录在1000万以上), 主关键字是 【执行日期]】 + 【ID号】。以前,为了提高索引的查询速度,我就将【执行日期】字段设计成了整数类型(或长整数),将【执行日期】全部以数字的方式存储在数据库中,例如: 2009-09-26,在【执行日期]】字段中就是数字: 20090926。 现在,我觉得这样做不是很直观,所以,我还是想将【执行日期】的字段类型改回成“日期类型”。现在有以下几个问题,需要请教大家:【1】 在主索引中,将【执行日期】字段的类型从“数字类型”改回“日期类型”,是否会影响到主索引的查询速度,如果有影响,影响多大,大概会降低多少个百分点?【2】 大家是否建议在数据表的主索引字段中包含“日期类型”的字段 ?【3】 对于 主关键字是 【执行日期]】 + 【ID号】这种情况的海量数据表,大家在设计主索引时有什么好的建议 ?有哪些优化方案。【4】 如果,我将主索引改成 【年度】 + 【执行日期】+ 【ID号】,其中【年度】、【执行日期】都是“数字类型”,大家觉得这样的设计好不好?会不会更有利于数据的分类查询?我这边现在没有海量数据库的测试环境,所以没办法进行测试。请有兴趣参与讨论的朋友对以上几个问题进行一些模拟测试,把测试结果提供出来让大家讨论一下。也请数据库高手提供一些指导性意见。谢谢 !
这样的不是很好 还不如直接从日期字段里面用datepart函数来截取
主键建议用int或是guid类型的。
把执行日期和ID号分成两个字段分别加索引。ps:一个表最多可以有16个索引,但不是索引越多越好。
【3】 对于 主关键字是 【执行日期]】 + 【ID号】这种情况的海量数据表,大家在设计主索引时有什么好的建议 ?有哪些优化方案。【4】 如果,我将主索引改成 【年度】 + 【执行日期】+ 【ID号】,其中【年度】、【执行日期】都是“数字类型”,大家觉得这样的设计好不好?会不会更有利于数据的分类查询? 主关键字一般用一个唯一列标识,同时这列会自动建立索引,
对于查询,一般将经常用到的查询条件建立索引,这样查询速度会更快。
“主索引改成 【年度】 + 【执行日期】+ 【ID号】”没有必要,
你查询经常用到日期,只要对日期建立索引就可以了,至于年度可以用datepart来取得