我们得到了一个FACT表,它有237383163行,其中有很多重复的数据。
当对这个表运行查询时,它对这么多行进行扫描,导致执行时间长(因为我们没有创建聚集索引)。
是否有人可以建议-使用现有字段的某些组合创建集群键以及添加任何新字段(如身份列)
在表上创建非聚集索引也没有帮助。
对
感想:
- 添加非唯一的聚集索引将需要一个4字节的唯一标识符
- 添加代理IDENTITY列将留下重复的
- 当有非聚集索引 时,聚集索引是最好的。
首先,删除重复数据
那么根据是否存在非聚类索引
,我会考虑以下两种情况之一- 如果没有NC索引,在部分或所有FACT列上创建唯一的聚集索引
- 对于NC索引,创建一个IDENTITY列并将其用作聚集索引。在FACT列 上创建唯一的NC索引
选项1在磁盘上要小得多。我以前对10亿行以上的事实表做过这个,它缩小了65%。没有NC指标。
两个选项都需要测试,以查看对负载和响应时间等的影响