SQL Server - FACT表上具有数百万行的聚簇索引键问题

时间:2011-10-09 16:50:45

标签: sql-server

我们得到了一个FACT表,它有237383163行数,并且有很多重复数据。

在针对此表运行查询时,它会跨越那么多行执行SCAN,从而导致执行时间过长(bocs我们还没有创建聚簇索引)。

是否有人可以建议 - 使用现有字段的某种组合创建聚簇键以及添加任何新字段(如标识列)

在表上创建的非聚集索引也无济于事。

此致

1 个答案:

答案 0 :(得分:1)

思想:

  • 添加非唯一的聚簇索引需要4字节的唯一符
  • 添加代理IDENTITY列会留下重复的内容
  • 如果 你有非聚集索引,那么聚类索引最好是狭义和数字

首先,重复数据

然后我根据是否存在非聚集索引来考虑两件事之一

  1. 如果没有NC索引,请在部分或全部FACT列上创建唯一的聚簇索引
  2. 使用NC索引创建IDENTITY列并将其用作聚簇索引。在FACT列上创建唯一的NC索引
  3. 选项1在磁盘上要小得多。我之前已经完成了这个十亿+行事实表,它缩减了65%。没有NC索引。

    需要测试这两个选项以查看对负载和响应时间等的影响