2011-10-09 90 views
0

我们得到了一个事实表已经得到了237383163的行数,并具有大量的重复数据的事实表的聚集索引关键问题。SQL服务器 - 与数百万行

虽然对这个表运行的查询其做跨越导致执行时间较长,很多行的SCAN(BOCS我们还没有创建聚集索引)。

是否有办法的人可以建议 - 创建一个使用现有领域的某种组合聚集键以及添加任何新的领域(如标识列)

非聚集索引的表上创建是没有帮助的任一。

问候

回答

1

思考:

  • 添加一个聚集索引不是唯一需要一个4字节uniqueifier
  • 添加替代IDENTITY列将离开你重复
  • 一个聚集索引最好是当狭窄和数字espeically如果你有非聚集索引

第一件事就是去重复数据

然后我会考虑根据是否有非聚集索引

  1. 没有NC指标的两件事情之一,一些创建一个唯一的聚集索引或所有的事实数据列
  2. 随着NC索引,创建IDENTITY列,并以此为聚集索引。在FACT色谱柱上创建一个唯一的NC索引

选项1在磁盘上会小很多。我之前做过10亿行的事实表,它缩小了65%。没有NC指标。

这两个选项都需要测试才能看到对加载和响应时间等的影响

+0

抱歉,但根据上述注释 - 哪一个是选项1呢? –

+0

抱歉,但根据上述意见 - 哪一个是选项1呢?我应该在日期字段上创建聚集索引,然后(EVERYDAY我们每天收到数百万行)但这不是唯一的 –

+3

@Conrad Jagger:我澄清了选项编号。首先,什么确定了一个事实?这将是决定你需要做什么选择的起点 – gbn